Form を表示する

Form を表示するプログラムを CLI で動かします。
CLI を使えば「ソースプログラム一本」だけで動きます。

前田稔の超初心者のプログラム入門

プログラムの説明

  1. 初めてのソフトは、慣れるまでに苦労します。 (^_^;)
    後から考えると「何であんなことでつまずいたのだろう」と思うことも、しばしばあります。 (;_;)
    ここではコマンドプロンプトの画面から C/C++(C# も同じ要領)のソースプログラムをコンパイルして実行する方法を説明します。
    この方法を使えば ソースプログラム一本 だけで動きます。
    2020/06/20 Windows10 & Visual Studio 2005 の環境で、初心者でも簡単に使える方法を紹介します。
  2. C:\DATA\Cpp\BAT\Form に Form.cpp を utf-8(BOM 有り)でタイプして格納して下さい。
    /*★ Form を生成して表示する    前田 稔 ★*/
    #using <System.dll>
    #using <System.Windows.Forms.dll>
    
    using namespace System;
    using namespace System::Windows::Forms;
    
    //フォームを作成するクラス
    ref class FormClass
    {
      private:
    
      public:
        Form^ form;
    
        //Constructor
        FormClass()
        {
            form = gcnew Form();
        }
    };
    
    //★ main() 関数
    int main()
    {
        FormClass MyForm;
        Application::Run(MyForm.form);
    
        return 0;
    }
    
  3. スタートメニューから[すべてのプログラム][Visual C++ 2005 Express Edition][Visual Studio Tools] [Visual Studio 2005 コマンド プロンプト] から起動します。
    次のコマンドをタイプして下さい。
    空の Form が表示されます。
    C:\Users\maeda>CD C:\DATA\Cpp\BAT\Form
    C:\DATA\Cpp\BAT\Form>cl /clr form.cpp
    C:\DATA\Cpp\BAT\Form>form.exe
    
  4. Maneged Mode では Window に代わり Form が使われています。
    Form を生成して表示する基本的なプログラムです。
    #using で実行に必要な DLL(Dynamic Link Library) をリンクします。
    using namespace は名前空間の設定で、修飾しなくても Class を参照できるようにします。
        #using <System.dll>
        #using <System.Windows.Forms.dll>
    
        using namespace System;
        using namespace System::Windows::Forms;
    
  5. FormClass は フォーム(Window) を生成するクラスです。
    今回は Constructor の中で gcnew Form() でインスタンスを生成するだけです。
    C++言語では new を使っていましたが、C++/CLI では gcnew を使います。
        ref class FormClass
        { public:
            Form^ form;
            FormClass()
            {   form = gcnew Form();  }
        };
    
  6. main() メソッドでは FormClass を定義して、MyForm.form をパラメータにして Application::Run() を呼びます。 ヽ(^^ )
    Application:: は明確な namespace の修飾です。
        int main()
        {   FormClass MyForm;
            Application::Run(MyForm.form);
            return 0;
        }
    

超初心者のプログラム入門(C/C++)