Main-Prozedur in Visual Basic
Aktualisiert: November 2007
Jede Visual Basic-Anwendung muss eine Prozedur mit der Bezeichnung Main enthalten. Diese Prozedur fungiert als Ausgangspunkt und Gesamtsteuerung für die Anwendung. Wenn .NET Framework die Anwendung geladen hat und die Steuerung an sie übergeben kann, wird die Main-Prozedur aufgerufen. Sofern Sie keine Windows Forms-Anwendung erstellen, müssen Sie die Main-Prozedur für Anwendungen schreiben, die eigenständig ausgeführt werden.
Main enthält den Code, der zuerst ausgeführt wird. In Main können Sie festlegen, welches Formular beim Programmstart zuerst geladen wird, feststellen, ob eine Kopie der Anwendung bereits auf dem System ausgeführt wird, eine Reihe von Variablen für die Anwendung definieren oder eine Datenbank öffnen, die für die Anwendung erforderlich ist.
Anforderungen für die Main-Prozedur
Eine Datei, die eigenständig ausgeführt wird (normalerweise mit der Erweiterung .exe), muss eine Main-Prozedur enthalten. Eine Bibliothek (z. B. mit der Erweiterung .dll) wird nicht eigenständig ausgeführt und erfordert keine Main-Prozedur. Für die unterschiedlichen Typen von Projekten, die Sie erstellen können, gelten folgende Anforderungen:
Konsolenanwendungen werden eigenständig ausgeführt, und Sie müssen mindestens eine Main-Prozedur angeben. .
Windows Forms-Anwendungen werden eigenständig ausgeführt. Jedoch generiert der Visual Basic-Compiler automatisch eine Main-Prozedur in einer solchen Anwendung, und Sie müssen sie nicht schreiben.
Klassenbibliotheken erfordern keine Main-Prozedur. Zu diesen zählen Windows-Steuerelementbibliotheken und Websteuerelementbibliotheken. Webanwendungen werden als Klassenbibliotheken bereitgestellt.
Deklarieren der Main-Prozedur
Es gibt vier Möglichkeiten, die Main-Prozedur zu deklarieren. Sie kann Argumente akzeptieren oder keine Argumente akzeptieren und einen Wert zurückgeben oder keinen Wert zurückgeben.
Hinweis: |
---|
Wenn Sie Main in einer Klasse deklarieren, müssen Sie das Shared-Schlüsselwort verwenden. In einem Modul muss Main dagegen nicht Shared sein. |
Das einfachste Verfahren ist das Deklarieren einer Sub-Prozedur, die keine Argumente akzeptiert und keinen Wert zurückgibt.
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 Module
Main kann auch einen Integer-Wert zurückgeben, der vom Betriebssystem als Exitcode für das Programm verwendet wird. Andere Programme können diesen Code testen, indem Sie den Windows-Wert ERRORLEVEL prüfen. Um Exitcode zurückzugeben, müssen Sie Main als eine Function-Prozedur und nicht als Sub-Prozedur deklarieren.
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 Module
Main kann auch ein String-Array als Argument enthalten. Jede Zeichenfolge im Array enthält eines der Befehlszeilenargumente, die zum Aufrufen des Programms verwendet werden. In Abhängigkeit von den Werten können Sie unterschiedliche Aktionen vornehmen.
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 argNum 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
Sie können Main deklarieren, um Befehlszeilenargumente zu überprüfen, ohne Exitcode zurückzugeben (siehe folgendes Beispiel).
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 argNum End If ' Insert call to appropriate starting place in your code. MsgBox("The application is terminating." End Sub End Module
Siehe auch
Konzepte
Visual Basic-Version von Hello World!
Referenz
Struktur von Visual Basic-Programmen
MsgBox-Funktion (Visual Basic)
Function-Anweisung (Visual Basic)
Integer-Datentyp (Visual Basic)