3

私のプロジェクトでは、C++サンプルコードが付属するデバイスを入手しました。コードは問題なく、デバイスは期待どおりに機能しています。

ただし、他のすべてのデバイスは現在C#インターフェイスを使用しているため、C#インターフェイスと通信するために必要です。

そこで、ドライバー用のDLLラッパーを作成することを計画しています。(適切なインターフェイスを備えたソースコードから)独自のC ++ライブラリを作成し、DLLImportを使用してC#からこのC ++ライブラリを呼び出します(そこでインターフェイスを呼び出すだけです)。

この方法で実行できると確信していますが、C ++ライブラリを作成してC#から使用したことはまだありません。だから、誰かが私の問題に合うチュートリアルを紹介してもらえますか?

私はC++/ C#intVS.NET2008を使用しています。

よろしく、Maksud

4

4 に答える 4

3

c#コードのc++dllで定義されたクラスの使用を見てください

于 2009-12-23T08:24:26.397 に答える
2

自由に使えるもう1つの便利なツールは、C++CLIです。

C ++ CLIを使用して、中間ライブラリ(マネージクラスを公開するが、アンマネージC++コードを実行するライブラリ)を作成できます。実際には、同じDLLにマネージC++とアンマネージC++を混在させることができます。

アンマネージ部分は、PInvoke関数を使用せずにアンマネージDLLにアクセスできます。

C#コードは、この中間ライブラリの管理対象クラスにアクセスできます。

于 2009-12-23T06:14:54.167 に答える
1

DLLと必要な処理によっては、ラッパーを直接作成する必要がない場合があります。関数のP/Invokeで逃げることができるかもしれません。特定のニーズと、提供されているライブラリ/コードですでに利用可能なものを評価する必要があります。

于 2009-12-23T06:12:35.357 に答える
0

この質問に来て答えを探している人は、公開されたばかりのネイティブC ++ DLLのC#ラッパージェネレーターであるxInterop NGen ++を試してみてください。このツールは、ネイティブC ++ DLLのC#ラッパーを自動的に生成できます。高度なP/Invokeテクノロジーを使用して即座に。現在のバージョンをチェックしてください。無料バージョンがまもなくリリースされます。

(私はツールの作者です)

于 2014-04-11T01:01:59.877 に答える