5

ネイティブC++メソッドのラッパーをC++/ CLIで作成しており、C#に公開します。現在、Visual Studio 2008を使用しています。ラッパーがC#に公開されるように、作成する必要のあるプロジェクトの種類を教えてもらえますか。Visual Studio 2008には、Visual C ++ --->CLR---->の下にさまざまな種類のプロジェクトがあることがわかります。

class library,
CLR Empty Project,
Windows form control library,
CLR Console Application,
Windows Forms Application,
Windows Service

どちらを使うべきですか?

4

1 に答える 1

7

クラスライブラリタイプのプロジェクトを作成する必要があります。最も重要なことは、プロジェクトのプロパティ->構成のプロパティ->一般で「共通言語ランタイムサポート」オプション(「共通言語ランタイムサポート(/ clr)」に設定)を指定することです。

これにより、

#pragma managed
... use your native stuff here
#pragma unmanaged

プラグマとネイティブ.libファイルとのリンク。

微妙な詳細については、このリンクを参照してください

http://www.codeguru.com/cpp/cpp/cpp_managed/interop/article.php/c6867/Consuming-Unmanaged-C-Class-Libraries-from-NET-Clients.htm

64ビットビルドには(この記事では言及されていない)落とし穴があります。「Linker->Input->Force Symbol References」は、64ビットの場合は「 _DllMainCRTStartup」に、32ビットの場合は「_DllMainCRTStartup@12」に設定する必要があります。

于 2012-05-17T19:41:03.047 に答える