Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Ogni applicazione Visual Basic deve contenere una routine denominata Main
. Questa procedura funge da punto di partenza e controllo complessivo per l'applicazione. Il .NET Framework chiama la procedura Main
quando ha caricato l'applicazione ed è pronto a passarle il controllo. A meno che non si stia creando un'applicazione Windows Form, è necessario scrivere la Main
procedura per le applicazioni eseguite autonomamente.
Main
contiene il codice che viene eseguito per primo. In Main
è possibile determinare quale modulo deve essere caricato per primo all'avvio del programma, verificare se una copia dell'applicazione è già in esecuzione nel sistema, stabilire un set di variabili per l'applicazione o aprire un database richiesto dall'applicazione.
Requisiti per la procedura principale
Un file eseguito autonomamente (in genere con estensione .exe) deve contenere una Main
routine. Una libreria ,ad esempio con estensione .dll) non viene eseguita autonomamente e non richiede una Main
routine. I requisiti per i diversi tipi di progetti che è possibile creare sono i seguenti:
Le applicazioni console vengono eseguite autonomamente ed è necessario specificare almeno una
Main
procedura.Le applicazioni Windows Form vengono eseguite autonomamente. Tuttavia, il compilatore Visual Basic genera automaticamente una
Main
routine in tale applicazione e non è necessario scriverne una.Le librerie di classi non richiedono la
Main
procedura. Tra cui librerie di controlli Windows e librerie di controlli Web. Le applicazioni Web vengono distribuite come librerie di classi.
Dichiarazione della procedura principale
Esistono quattro modi per dichiarare la Main
procedura. Può accettare o meno argomenti e può restituire o meno un valore.
Annotazioni
Se si dichiara Main
in una classe, è necessario usare la Shared
parola chiave . In un modulo, Main
non necessita di Shared
.
Il modo più semplice consiste nel dichiarare una
Sub
routine che non accetta argomenti o restituisce un valore.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
può anche restituire unInteger
valore, che il sistema operativo usa come codice di uscita per il programma. Altri programmi possono testare questo codice esaminando il valore ERRORLEVEL di Windows. Per restituire un codice di uscita, è necessario dichiarareMain
come unaFunction
routine anziché unaSub
routine.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
può anche accettare unaString
matrice come argomento. Ogni stringa nella matrice contiene uno degli argomenti della riga di comando usati per richiamare il programma. È possibile eseguire azioni diverse a seconda dei relativi valori.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
È possibile dichiarare
Main
di esaminare gli argomenti della riga di comando, ma non restituire un codice di uscita, come indicato di seguito.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