Freigeben über


Hauptprozedur in Visual Basic

Jede Visual Basic-Anwendung muss eine Prozedur namens Main enthalten. Dieses Verfahren dient als Ausgangspunkt und gesamter Kontrolle für Ihre Anwendung. Das .NET Framework ruft Ihre Main Prozedur auf, wenn sie Ihre Anwendung geladen hat und bereit ist, die Steuerung an sie zu übergeben. 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 bestimmen, welches Formular zuerst geladen werden soll, wenn das Programm gestartet wird, herausfinden, ob eine Kopie Ihrer Anwendung bereits auf dem System ausgeführt wird, eine Reihe von Variablen für Ihre Anwendung einrichten oder eine Datenbank öffnen, die die Anwendung benötigt.

Anforderungen für das Hauptverfahren

Eine Datei, die eigenständig ausgeführt wird (in der Regel mit Erweiterung .exe), muss eine Main Prozedur enthalten. Eine Bibliothek (z. B. mit Erweiterung .dll) wird nicht eigenständig ausgeführt und benötigt keine Main Prozedur. Die Anforderungen für die verschiedenen Arten von Projekten, die Sie erstellen können, sind wie folgt:

  • Konsolenanwendungen werden eigenständig ausgeführt, und Sie müssen mindestens eine Main Prozedur bereitstellen.

  • Windows Forms-Anwendungen werden eigenständig ausgeführt. Der Visual Basic-Compiler generiert jedoch automatisch eine Main Prozedur in einer solchen Anwendung, und Sie müssen keines schreiben.

  • Klassenbibliotheken benötigen keine Main Prozedur. Dazu gehören Windows-Steuerelementbibliotheken und Websteuerelementbibliotheken. Webanwendungen werden als Klassenbibliotheken bereitgestellt.

Deklarieren der Main-Prozedur

Es gibt vier Möglichkeiten, die Main Prozedur zu deklarieren. Es kann Argumente annehmen oder nicht, und er kann einen Wert zurückgeben oder nicht.

Hinweis

Wenn Sie in einer Klasse deklarieren Main , müssen Sie das Shared Schlüsselwort verwenden. In einem Modul muss Main nicht Shared sein.

  • Die einfachste Möglichkeit besteht darin, eine Sub Prozedur zu deklarieren, die keine Argumente verwendet oder einen 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, den das Betriebssystem als Ausgangscode für Ihr Programm verwendet. Andere Programme können diesen Code testen, indem der Windows ERRORLEVEL-Wert untersucht wird. Um einen Ausgangscode zurückzugeben, müssen Sie Main als Function-Prozedur statt 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 verwenden. Jede Zeichenfolge im Array enthält eines der Befehlszeilenargumente, die zum Aufrufen des Programms verwendet werden. Sie können je nach ihren Werten unterschiedliche Aktionen ausführen.

    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
    
  • Sie können Main deklarieren, um die Befehlszeilenargumente zu untersuchen, jedoch keinen Beendigungscode zurückgeben, wie folgt.

    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
    

Siehe auch