忍者ブログ

Memeplexes

プログラミング、3DCGとその他いろいろについて

[C++/CLI] .Netアセンブリをインポート

C++/CLIでの.netアセンブリのインポートに手間取ったのでメモしておきます。

アセンブリのインポートというのは、たとえばWindowsFormsを使いたい時に参照としてSystem.Windows.Forms.dllを追加するアレです。
C#のコンパイラcsc.exeでいう/refereceオプションでやるやつです。これをしないとコンパイルできません。
しかしC++/CLIのコンパイラ、cl.exeにはそのようなオプションがぱっと見、みあたりません。(後でわかったのですが、/FUがそれっぽいです)

どうやらC++/CLIでは#usingでソースコード中に指定できるようです。

HelloWorld.cpp
#using<System.Windows.Forms.dll>

int main()
{
	System::Windows::Forms::MessageBox::Show("Hello World");
	return 0;
}

コマンドラインは特に変わったところはありません。

cl /clr HelloWorld.cpp

b22bb76d.JPG

よし!できました!
コンパイラのオプションではなくコード中で指定できるとは意外でした。


もちろん/FUオプションを使ってもOKです。(#usingを使ったかのようにコンパイルすることを強制(force)するという意味のようです。)
HelloWorld.cpp
int main()
{
	System::Windows::Forms::MessageBox::Show("Hello World");
	return 0;
}


Visual Studio 2005 Command Prompt
cl /clr /FUSystem.Windows.Forms.dll HelloWorld.cpp






拍手[0回]

PR