Procédure Main dans Visual Basic
Chaque application Visual Basic doit contenir une procédure appelée Main
. Cette procédure sert de point de départ et de contrôle global pour votre application. Le .NET Framework appelle votre procédure Main
lorsqu’il a chargé votre application et est prêt à lui transmettre le contrôle. Excepté si vous créez une application Windows Forms, vous devez écrire la procédure Main
pour les applications qui s’exécutent elles-mêmes.
Main
contient le code qui s’exécute en premier. Dans Main
, vous pouvez déterminer le formulaire à charger en premier lorsque le programme démarre, déterminer si une copie de votre application est déjà en cours d’exécution sur le système, établir un ensemble de variables pour votre application ou ouvrir une base de données dont l’application a besoin.
Exigences pour la procédure principale
Un fichier qui s’exécute lui-même (généralement avec l’extension .exe) doit contenir une procédure Main
. Une bibliothèque (par exemple avec l’extension .dll) ne s’exécute pas elle-même et ne nécessite pas de procédure Main
. Les exigences pour les différents types de projets que vous pouvez créer sont les suivantes :
Les applications console s’exécutent elles-mêmes, et vous devez fournir au moins une procédure
Main
.Les applications Windows Forms s’exécutent elles-mêmes. Toutefois, le compilateur Visual Basic génère automatiquement une procédure
Main
dans une telle application, et vous n’avez pas besoin d’en écrire une.Les bibliothèques de classes ne nécessitent pas de procédure
Main
. Il s’agit notamment des bibliothèques de contrôles Windows et des bibliothèques de contrôles web. Les applications web sont déployées en tant que bibliothèques de classes.
Déclaration de la procédure principale
Il existe quatre façons de déclarer la procédure Main
. Elle peut accepter des arguments ou non, et elle peut retourner une valeur ou non.
Notes
Si vous déclarez Main
dans une classe, vous devez utiliser le mot clé Shared
. Dans un module, Main
n’a pas besoin d’être Shared
.
La façon la plus simple consiste à déclarer une procédure
Sub
qui n’accepte pas d’arguments et ne retourne pas de valeur.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
peut également retourner une valeurInteger
, que le système d’exploitation utilise comme code de sortie pour votre programme. D’autres programmes peuvent tester ce code en examinant la valeur Windows ERRORLEVEL. Pour retourner un code de sortie, vous devez déclarerMain
en tant que procédureFunction
au lieu d’une procédureSub
.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
peut également accepter un tableauString
comme argument. Chaque chaîne du tableau contient l’un des arguments de ligne de commande utilisés pour appeler votre programme. Vous pouvez effectuer différentes actions en fonction de leurs valeurs.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
Vous pouvez déclarer
Main
pour examiner les arguments de ligne de commande, mais pas retourner un code de sortie, comme suit.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