-4

C# と c++ の間で相互運用する方法

4

2 に答える 2

0

extern "c" は、コンパイラーに「c のように」関数をエクスポートするように指示するため、c ++ 固有であるため、c では必要ありません。

c と c++ の両方でコンパイルしたい場合は、このようなことができます。

#ifdef __cplusplus
extern "C" {
#endif

__declspec(dllexport) void D()
{
}

#ifdef __cplusplus
}
#endif

また、実行可能ファイルではなく dll をビルドするように VS に指示する必要があります。

于 2012-08-12T23:58:08.150 に答える
0

ネイティブ DLL 内の関数を C# から直接呼び出すことはできませんが、P/Invoke と呼ばれる機能を通じて使用できます。http://msdn.microsoft.com/en-us/library/aa288468(v=vs.71).aspx

別のオプションは、C++/CLI でラッパーを作成することです。C++/CLI は、.Net コードをラップしてネイティブなものを使用できるようにするためのほぼ標準的な方法です。

最後に、ラッパーをまったく使用する代わりに、P/Invoke を使用して C# から q.dll 関数を呼び出すこともできます。

于 2012-08-12T19:13:17.640 に答える