DLL作成の序に、VC++フォームでも表示させてみようかと試してみましたが、改めてC++の複雑怪奇さを感じました。(VC++は約束事が多過ぎ)
柔軟性とか、汎用性とか、言葉巧みに誤魔化されちゃったっていう感じが・・・。ずぼらのめんどくさがり屋には、度を越した冗長性とか、オタッキーな適応性とか、それこそ意味不明瞭だし。
それはさて置き。
当然、IDEは難し過ぎるので、DOS窓(コマンドプロンプト)にcl入れてコンパイル!
試しに、VC++フォームを呼び出すだけのサンプルを作ってみました。
ただ、デザイナの利用は有りですね。
一寸凝りたければ、部品(コントロール)の配置も複雑になり、扱う部品数も多くなります。そんな時、グラフィカルに部品配置が出来るデザイナは優れものです。
手打ちは、画面サンプルや動作確認用(プレゼン?)などであればプログラムが小さくて済む分、読み易くなるには違いないけど、UIの作り込みは儘なりません!
<注意点>
・現状のclコマンドラインでは、エクスプローラから起動するとDOS窓が立ち上がった後に、VC++フォームが立ち上がります(つまり、コンソールアプリケーションであるらしい。Windows アプリケーションではない)。
お試し環境
WindowsXP 32bit Edition
Visual C++ 2008
/*---- VC++ Form 作成 ----------------- コマンドライン --------------------*/
D:\vc2008\dllchk>cl /clr testpp.cpp
/*----------------------------------------------------------------------------*/
/*---- testpp.cpp -------------------- お試しソース ------------------------*/
#using <system.dll>
#using <system.drawing.dll>
#using <system.windows.forms.dll>
using namespace System::Windows::Forms;
void main()
{
Form ^form1 = gcnew Form;
form1->Location = System::Drawing::Point(100, 100);
form1->Size = System::Drawing::Size(400, 200);
form1->StartPosition = FormStartPosition::Manual;
form1->Name = "form1";
form1->Text = "画面構成サンプル";
Button ^button1 = gcnew Button;
button1->Location = System::Drawing::Point(150, 100);
button1->Size = System::Drawing::Size(100, 40);
button1->Name = "button1";
button1->Font = gcnew System::Drawing::Font("MS UI Gothic", 16);
button1->Text = "ボタン";
form1->Controls->Add(button1);
Label ^label1 = gcnew Label;
label1->Location = System::Drawing::Point(100, 30);
label1->Size = System::Drawing::Size(240, 40);
label1->Name = "label1";
label1->Font = gcnew System::Drawing::Font("MS 明朝", 24);
label1->Text = "エラーが来たぁ";
form1->Controls->Add(label1);
System::Windows::Forms::Application::Run(form1);
}
/*----------------------------------------------------------------------------*/