0

奇妙なものを手に入れました、そしてそれが何かばかげていることを私は知っています、しかし私はそれを何のためにも見ることができません!

私はVB.netで作成されたDLLを持っており(いいえ、変更できません!:-))、C#から呼び出しています。問題は、オブジェクトがC#で作成された時点で発生し、「いくつかの無効な引数」があるというメッセージが表示されます。

DLLのコンストラクタコードは次のとおりです。

Sub New(ByRef Connection As IConnection)

C#のコードは次のとおりです。

IConnection conn = new Connection();  
CustomObject test = new CustomObject(conn)

最初の行には満足していますが、2行目にエラーメッセージ(「いくつかの無効な引数」)が表示されます。

また、VB.netでセカンダリプロジェクトを作成し、DLLと呼びましたが、そこで正常に動作します。

私は何が間違っているのですか?

前もって感謝します、

アンディ

4

2 に答える 2

2

C#では、パラメーターが「ByRef」の場合、関数を呼び出すときにそれを指定する必要があります

CustomObject test = new CustomObject(ref conn);
于 2011-04-19T08:52:03.060 に答える
0

私は数日前に同様の問題を抱えていたので、これを手伝うことができるかもしれません。私は初心者ですが、私のプロジェクトでは同じ質問がありました(エラーではありません)。

はい、C#.NETプロジェクトでVB.NETを介してビルドされたDLLを使用できます。VB.NET dllがある場合は、C#.NETを変更せずに使用できます。ただし、プラットフォームオプションに注意を払う必要がある場合もあります。

.NETには、次の2つの重要な機能があります。

  1. コンパイルにより、IL(中間言語)コードが生成されます。すべての.NET言語は、コンパイル時にJIT(Just In Time)コンパイラによってコンパイルされたILを生成します。

  2. すべての言語は共通型システム(CTS)を使用し、同じ共通言語ランタイム(CLR)で実行されます。目標は、相互運用が容易なコードを作成することです。

したがって、DLLは問題ありません。あなたのエラーは何か他のもののためかもしれません、私はそれについて知りません。

お役に立てれば。

于 2011-04-19T09:04:12.043 に答える