0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【VB.NET、C#】エントリーポイントの作成方法

Last updated at Posted at 2021-12-21

VB.NET、C#におけるエントリーポイントの作成方法です。

エントリーポイントとは?

エントリーポイントとは、そのプログラムにおいて一番最初に実行される場所のことです。
オブジェクト指向言語でポピュラーなJavaで言うとMainメソッドのことです。
それのVB.NETおよびC#バージョンを紹介します。

VB.NETのエントリーポイント

VB.NETにおけるエントリーポイントは、何も考えずにVisual Studioでコーディングするとフォームクラスに作成されてしまいます。
そのため、少し準備してあげる必要があります。
手順としては、

  1. エントリーポイント用のモジュールを作成する
  2. Mainメソッドを記述する
  3. MyProjectでMainメソッドをエントリーポイントに指定する

となります。

1.エントリーポイント用のモジュールを作成する

まずは、Mainメソッドを記述するエントリーポイント用のモジュールを作成します。
Visual Studioでプロジェクトを開き、ソリューションエクスプローラーからモジュールを追加します。
20211221_001.jpg
20211221_002.jpg
20211221_003.jpg

これでエントリーポイント用のモジュール作成はOKです。

2.Mainメソッドを記述する

次に、エントリーポイント用のモジュールにMainメソッドを記述します。

Module StartMod
    Sub Main()
        MessageBox.Show("Mainメソッドテスト")
    End Sub
End Module

これだけです。
動作確認用にメッセージボックスを作成しておきました。

ここにどの様なコードを書くのかというと、例えばMutexクラスを用いた二重起動チェックの処理です。
また、アプリケーションの各種初期処理をMainメソッド直下、もしくはMainメソッドから呼び出したり、コマンドライン引数をMaimメソッドで受け取ったり等、記述するコードは色々とあります。

3.MyProjectでMainメソッドをエントリーポイントに指定する

最後に、MyProjectの設定を変更します。
MyProjectを開き、アプリケーションから次を設定します。

  1. 「アプリケーションフレームワークを有効にする」のチェックを外す
  2. 「スタートアップオブジェクト」のプルダウンから「Sub Main」を選択

下の画像を参考に設定して下さい。
20211221_004.jpg

これで実行すると、メッセージボックスの「Mainメソッドテスト」が表示されます。
20211221_005.jpg

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#の様な制約はありません。

参考

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?