すべての Visual Basic アプリケーションには、 Mainという名前のプロシージャが含まれている必要があります。 この手順は、アプリケーションの開始点と全体的な制御として機能します。 .NET Framework は、アプリケーションを読み込み、制御を渡す準備ができたら、 Main プロシージャを呼び出します。 Windows フォーム アプリケーションを作成する場合を除き、独自に実行するアプリケーションの Main プロシージャを記述する必要があります。
Main には、最初に実行されるコードが含まれています。
Mainでは、プログラムの起動時に最初に読み込むフォームを決定したり、アプリケーションのコピーがシステムで既に実行されているかどうかを確認したり、アプリケーションの変数のセットを確立したり、アプリケーションに必要なデータベースを開いたりすることができます。
メイン プロシージャの要件
単独で実行するファイル (通常は拡張子が .exe) には、 Main プロシージャが含まれている必要があります。 ライブラリ (拡張 .dllなど) は単独で実行されず、 Main プロシージャは必要ありません。 作成できるさまざまな種類のプロジェクトの要件は次のとおりです。
コンソール アプリケーションは単独で実行され、少なくとも 1 つの
Mainプロシージャを指定する必要があります。Windows フォーム アプリケーションは、独自に実行されます。 ただし、Visual Basic コンパイラは、このようなアプリケーションで
Mainプロシージャを自動的に生成するため、プロシージャを記述する必要はありません。クラス ライブラリには、
Mainプロシージャは必要ありません。 これには、Windows コントロール ライブラリと Web コントロール ライブラリが含まれます。 Web アプリケーションはクラス ライブラリとしてデプロイされます。
主要手続きの宣言
Main プロシージャを宣言するには、4 つの方法があります。 引数を受け取るかどうかにかかわらず、値を返すことができます。
注
クラスで Main を宣言する場合は、 Shared キーワードを使用する必要があります。 モジュールでは、 Main を Sharedする必要はありません。
最も簡単な方法は、引数を受け取ったり値を返したりしない
Subプロシージャを宣言することです。Module mainModule Sub Main() MsgBox("The Main procedure is starting the application.") ' Insert call to appropriate starting place in your code. MsgBox("The application is terminating.") End Sub End ModuleMainは、オペレーティング システムがプログラムの終了コードとして使用するInteger値を返すこともできます。 他のプログラムでは、Windows ERRORLEVEL 値を調べることで、このコードをテストできます。 終了コードを返すには、Mainプロシージャではなく、FunctionプロシージャとしてSubを宣言する必要があります。Module mainModule Function Main() As Integer MsgBox("The Main procedure is starting the application.") Dim returnValue As Integer = 0 ' Insert call to appropriate starting place in your code. ' On return, assign appropriate value to returnValue. ' 0 usually means successful completion. MsgBox("The application is terminating with error level " & CStr(returnValue) & ".") Return returnValue End Function End ModuleMainでは、String配列を引数として受け取ることもできます。 配列内の各文字列には、プログラムの呼び出しに使用されるコマンド ライン引数のいずれかが含まれています。 値に応じて異なるアクションを実行できます。Module mainModule Function Main(ByVal cmdArgs() As String) As Integer MsgBox("The Main procedure is starting the application.") Dim returnValue As Integer = 0 ' See if there are any arguments. If cmdArgs.Length > 0 Then For argNum As Integer = 0 To UBound(cmdArgs, 1) ' Insert code to examine cmdArgs(argNum) and take ' appropriate action based on its value. Next End If ' Insert call to appropriate starting place in your code. ' On return, assign appropriate value to returnValue. ' 0 usually means successful completion. MsgBox("The application is terminating with error level " & CStr(returnValue) & ".") Return returnValue End Function End Module次のように、
Mainを宣言してコマンドライン引数を調べることができますが、終了コードは返しません。Module mainModule Sub Main(ByVal cmdArgs() As String) MsgBox("The Main procedure is starting the application.") Dim returnValue As Integer = 0 ' See if there are any arguments. If cmdArgs.Length > 0 Then For argNum As Integer = 0 To UBound(cmdArgs, 1) ' Insert code to examine cmdArgs(argNum) and take ' appropriate action based on its value. Next End If ' Insert call to appropriate starting place in your code. MsgBox("The application is terminating.") End Sub End Module
こちらも参照ください
.NET