VB.NET、C#におけるエントリーポイントの作成方法です。
エントリーポイントとは?
エントリーポイントとは、そのプログラムにおいて一番最初に実行される場所のことです。
オブジェクト指向言語でポピュラーなJavaで言うとMainメソッドのことです。
それのVB.NETおよびC#バージョンを紹介します。
VB.NETのエントリーポイント
VB.NETにおけるエントリーポイントは、何も考えずにVisual Studioでコーディングするとフォームクラスに作成されてしまいます。
そのため、少し準備してあげる必要があります。
手順としては、
- エントリーポイント用のモジュールを作成する
- Mainメソッドを記述する
- MyProjectでMainメソッドをエントリーポイントに指定する
となります。
1.エントリーポイント用のモジュールを作成する
まずは、Mainメソッドを記述するエントリーポイント用のモジュールを作成します。
Visual Studioでプロジェクトを開き、ソリューションエクスプローラーからモジュールを追加します。
これでエントリーポイント用のモジュール作成はOKです。
2.Mainメソッドを記述する
次に、エントリーポイント用のモジュールにMainメソッドを記述します。
Module StartMod
Sub Main()
MessageBox.Show("Mainメソッドテスト")
End Sub
End Module
これだけです。
動作確認用にメッセージボックスを作成しておきました。
ここにどの様なコードを書くのかというと、例えばMutexクラスを用いた二重起動チェックの処理です。
また、アプリケーションの各種初期処理をMainメソッド直下、もしくはMainメソッドから呼び出したり、コマンドライン引数をMaimメソッドで受け取ったり等、記述するコードは色々とあります。
3.MyProjectでMainメソッドをエントリーポイントに指定する
最後に、MyProjectの設定を変更します。
MyProjectを開き、アプリケーションから次を設定します。
- 「アプリケーションフレームワークを有効にする」のチェックを外す
- 「スタートアップオブジェクト」のプルダウンから「Sub Main」を選択
これで実行すると、メッセージボックスの「Mainメソッドテスト」が表示されます。
C#のエントリーポイント
C#におけるエントリーポイントは、Visual Studioのプロジェクト作成の際に自動で作成されます。
そのため、「エントリーポイントを作成する」というよりも、「どこにMainメソッドが作られるか」を知っていた方が良いです。
例えば、フォームアプリケーションを作成してみてください。すると、Program.csというファイルも勝手に作成されます。
このProgram.csの中を覗いてみると、Mainメソッドが作成されています。
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form_CS_Substring());
}
なので、とりあえずProgram.csファイルを開いてみて下さい。そこにMainメソッドがあるはずです。
補足
何故、C#では自動で作成されるのに、VB.NETで準備の手順を踏む必要があるかと言うと、VB.NETではアプリケーションを動かす制約が緩いため、フォームでもエントリーポイントとして認識されるからです。
Javaの場合、アプリケーションを動かす場合、「public static void main(String[] args)」と記述する必要があるという制約がありますが、VB.NETにはJavaやC#の様な制約はありません。
参考