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