Delen via


Hoofdprocedure in Visual Basic

Elke Visual Basic-toepassing moet een procedure bevatten met de naam Main. Deze procedure fungeert als uitgangspunt en algehele controle voor uw toepassing. Het .NET Framework roept uw Main procedure aan wanneer deze uw toepassing heeft geladen en klaar is om het beheer eraan door te geven. Tenzij u een Windows Forms-toepassing maakt, moet u de Main procedure schrijven voor toepassingen die zelfstandig worden uitgevoerd.

Main bevat de code die eerst wordt uitgevoerd. In Main, kunt u bepalen welk formulier eerst moet worden geladen wanneer het programma wordt gestart, erachter komen of een kopie van uw toepassing al wordt uitgevoerd op het systeem, een set variabelen voor uw toepassing tot stand brengen of een database openen die de toepassing nodig heeft.

Vereisten voor de hoofdprocedure

Een bestand dat zelfstandig wordt uitgevoerd (meestal met extensie .exe) moet een Main procedure bevatten. Een bibliotheek (bijvoorbeeld met extensie-.dll) wordt niet zelfstandig uitgevoerd en vereist Main geen procedure. De vereisten voor de verschillende soorten projecten die u kunt maken, zijn als volgt:

  • Consoletoepassingen worden zelfstandig uitgevoerd en u moet ten minste één Main procedure opgeven.

  • Windows Forms-toepassingen worden zelfstandig uitgevoerd. De Visual Basic-compiler genereert echter automatisch een Main procedure in een dergelijke toepassing en u hoeft er geen te schrijven.

  • Voor klassebibliotheken is geen procedure vereist Main . Dit zijn onder andere Windows-besturingselementbibliotheken en webbesturingsbibliotheken. Webtoepassingen worden geïmplementeerd als klassebibliotheken.

De hoofdprocedure declareren

Er zijn vier manieren om de Main procedure te declareren. Het kan argumenten aannemen of niet, en het kan een waarde retourneren of niet.

Notitie

Als u in een klasse declareert Main , moet u het Shared trefwoord gebruiken. In een module Main hoeft dat niet te zijn Shared.

  • De eenvoudigste manier is om een Sub procedure te declareren die geen argumenten accepteert of een waarde retourneert.

    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 kan ook een Integer waarde retourneren die door het besturingssysteem wordt gebruikt als afsluitcode voor uw programma. Andere programma's kunnen deze code testen door de windows ERRORLEVEL-waarde te onderzoeken. Als u een afsluitcode wilt retourneren, moet u declareren Main als een Function procedure in plaats van een Sub procedure.

    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 kan ook een String matrix als argument gebruiken. Elke tekenreeks in de matrix bevat een van de opdrachtregelargumenten die worden gebruikt om uw programma aan te roepen. U kunt verschillende acties uitvoeren, afhankelijk van hun waarden.

    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
    
  • U kunt als volgt declareren Main om de opdrachtregelargumenten te onderzoeken, maar geen afsluitcode te retourneren.

    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
    

Zie ook