2010-12-06 5 views

答えて

6

Windowsでは、COM interopを使用してC++で作業できます。しかしこれはLinux/Mac OS Xでは動作しません。

もう1つの方法は、C++クラス(C++のextern "C")の周りにCラッパーを公開することです。これは、DllImportがC ABIを必要とするため必要です。

編集:第3の選択肢はC++/CLIです。つまり、.Net用のC++コードをコンパイルします。これはWindowsのみのソリューションでもあります。

0

SWIGを使用することもできます。 LinuxとMacのMonoで動作します。

これは、C++クラスを公開するC関数のセットを生成し、DllImportでそれらを呼び出すC#クラスを生成します。

これはC#でC++クラスを継承することができ、Directors機能ではC++コードでC#でオーバーライドされた仮想メソッドを呼び戻すことができます。

関連する問題