忍者ブログ

Memeplexes

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

[C++/CLI]でSystem::Console::WriteLine

DirectX10をそのうちやる予定なのでC++のリハビリをしなくちゃいけません。

というわけでC++/CLIの練習です。(本当はやりたくないんですが・・・)

HelloWorld

簡単なものから行くつもりなのでVisual Studioはオーバーキルでしょうから、コマンドラインからコンパイルすることにします。

C++/CLIのコマンドラインのコンパイラはcl.exeで、Visual StudioのツールのVisual Studio 2005 Command Promptから使えます。(これはVisual C++ Expressについてくるみたいです。"~から使えます"といいましたが、むしろこれがないと困ります。普通のコマンドラインからだとclのパスを通してもコンパイルが上手くいきません。)

まずはさっそくHello Worldです。
HelloWorld.cpp
#include<iostream>

int main()
{
	std::cout << "Hello World!" << std::endl;
	return 0;
}

なんの変哲もないHello Worldです。
これをコンパイルするには、Visual Studio 2005 Command Promptからこうやります:
cl HelloWorld.cpp

これで異常な量の警告と共に(笑)、いちおうコンパイルが成功します。

.Net

次はC++/CLIから.Net Frameworkのライブラリを使ってみす。
これが使えてこそのC++/CLIですからね!

HelloWorld.cpp
int main()
{
	System::Console::WriteLine("C++/CLI!");
	return 0;
}

コマンドラインはさっきとちょっと違って/clrオプションが必要になるようです。(でないとエラーが出てコンパイルできません。コンパイラが'System'はクラスでもネームスペースでもないとか文句を言い出します)

cl /clr HelloWorld.cpp

/clrオプションを指定するとCommon Language Runtime用にコンパイルするそうです。
で、こうやってコンパイルするとXMLのマニフェストファイルと共に、HelloWorld.exeが作られます。

ここでは.net のライブラリだけを使いましたが、混ぜることも出来るようです。

HelloWorld.cpp
#include<iostream>

int main()
{
	std::cout << "Hello World" << std::endl;
	System::Console::WriteLine("C++/CLI!");
	return 0;
}

cl /clr HelloWorld.cpp

拍手[0回]

PR