すでにオワコンだが
昔はVC++にもWindowsフォームアプリを作るテンプレートがあってちゃんとサポートされていたけど、今はテンプレートもなくなってる。もうとっくにオワコンである。そもそも、わざわざVC++で.NETアプリ作りたいニーズは少ないだろう。でもCのコードにちょっとUIがほしいときに便利ではある。さすがにWin32 APIで書くのは面倒くさいし。
手順メモ
※ いまだにVisual Studio 2013使ってるので最新の環境では違うかも。
- [ファイル] > [新規作成] > [プロジェクト] で、[Visual C++] の [CLR] の [空のCLRプロジェクト] を選択。ここではプロジェクト名を CppWinForm としたとする。
- [プロジェクト] > [新しい項目の追加] で、[UI] の [Windowsフォーム] を選択。ここではファイル名を MyForm.h としたとする。
- MyForm.cppにコードを追加
#include "MyForm.h" using namespace CppWinForm; // プロジェクト名に合わせる [STAThreadAttribute] int main() // エントリポイントの関数 { MyForm ^fm = gcnew MyForm(); fm->ShowDialog(); return 0; }
- [プロジェクト] -[CppWinForm のプロパティ] で、[構成プロパティ] の [リンカー] の [システム] の [サブシステム] を Windows(/SUBSYSTEM:WINDOWS) に設定。
- 同じく [構成プロパティ] の [リンカー] の [詳細設定] の [エントリポイント] に上記のエントリポイントの関数名 main を記入。
- あとはC#でフォームアプリを作る要領で。
// button1 と textBox1 をフォームに貼る。 // textBox1を叩くと、 MyForm1.h にハンドラができる。 // textBox1 と メッセージボックスに文字列を表示するコードを書く。 private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { textBox1->Text = "HOGE!"; MessageBox::Show("PIYO!"); }
注意点
もうオワコンなので、サポートがぞんざいである。C#と比べてなんか挙動がおかしい。