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 eenInteger
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 declarerenMain
als eenFunction
procedure in plaats van eenSub
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 eenString
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