Visual Studio Express 2012 for Windows DesktopのVisual C++ CLRでWindowsフォームアプリケーションを作る方法

Visual Studio Express 2012 for Windows Desktop (以下VS2012)の Visual C++ CLRでWindowsフォームアプリケーションを作成する方法などを適当に書いていこうかと。
2ヶ月ぐらい前に『VS2012はC++/CLIでフォームアプリケーション作れないん』みたいなのをツイートしたんですが、一応作れるみたいで。

なお今回試した環境は

  • OS: Windows 8 Professional 32bit
  • CPU: Intel Atom D525
  • RAM: 4GiB (3GiB)
  • DISK: SSD 240GB
  • IDE: Visual Studio Express 2012 for Windows Desktop Update 1

な環境となっております。
 
まずVS2012を開くと、こんな感じ。
VS2012_C++CLR_01
 
ここから [ファイル] → [新しいプロジェクト] を選択します。
VS2012_C++CLR_02
 
[テンプレート] → [Visual C++] → [CLR] を選択すると、「Windowsフォームアプリケーション」やら「CLRフォームアプリケーション」やら書いてそうなのが存在しないと。
なので、ここでは「空のCLRプロジェクト」を選択します。
なお、プロジェクト名はデフォルトの「Project1」としています。
VS2012_C++CLR_03
 
開いて右ペインを見ると、「空のCLRプロジェクト」を選択しているので、当然ながら何もないです。
VS2012_C++CLR_04
 
Windowsフォームアプリケーションを作るために、[プロジェクト] → [新しい項目の追加] を選択します。
VS2012_C++CLR_05
 
[Viual C++] → [UI] の「Windowsフォーム」を選択します。
ここではファイル名をデフォルトの「MyForm.h」にしています。
VS2012_C++CLR_06
 
フォームデザイナーが開き、右ペインにも「MyForm.cpp」と「MyForm.h」ができてます。
VS2012_C++CLR_07
 
ただ、「MyForm.cpp」を見ると、「#include “MyForm.h”」が記述されているだけで、ほぼ空なんですね。
VS2012_C++CLR_08
 
なので、ビルドするとエラーが出たりなんかします。
VS2012_C++CLR_09
 
そこで、次のようなコードを記述します。
まぁVisual C++ 2008とか2010からほぼそのままパクってきたものですぐぁ。

#include "MyForm.h"

using namespace <<ソリューション名>>;

[STAThreadAttribute]
int main( array<System::String ^> ^args )
{
	Application::EnableVisualStyles();
	Application::SetCompatibleTextRenderingDefault( false );
	Application::Run( gcnew <<CLRフォームの参照クラス型名>>() );
	return 0;
}

書いてみるとこんな感じ。
VS2012_C++CLR_10
 
これをビルドして実行すると、空のWindowsフォームアプリケーションが起動します。
ただ、見たらわかるんですが、後ろにコマンドプロンプトも起動しちゃってるんですね。
ログを吐くわけでもなく、何も表示していないのでこれが実にウザいと。
なので、こいつを消します。
VS2012_C++CLR_11
 
プロジェクトを選択して、右クリックから [プロパティ] を選択します。
VS2012_C++CLR_12
 
[構成プロパティ] → [リンカー] → [システム] の [サブシステム] を「Windows (/SUBSYSTEM:WINDOWS)」に変更します。
VS2012_C++CLR_13
 
続いて [構成プロパティ] → [リンカー] → [詳細設定] の [エントリポイント] に「main」と書きます。
VS2012_C++CLR_14
 
これでリビルドして成功することを確認します。
VS2012_C++CLR_15
 
そして起動してみれば、空のWindowsフォームアプリケーションがコマンドプロンプトなしで起動します。
VS2012_C++CLR_16
 
 
とまぁ、こんな感じで。
あとは適当に今まで通り左端にある [ツールボックス] からボタンなりなんなりを追加していって、コードを書いていってやれば良いんではないかと(そこまで試してない^^;

もっとも、MicrosoftとしてはWindowsフォームアプリケーションを作りたい場合はC#を使えよっていう話でしょうし、Windows 8ではModern UI推しなわけですが。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中