Partager via


Procédure principale en 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 Main procédure lorsqu’elle a chargé votre application et est prête à lui transmettre le contrôle. Sauf si vous créez une application Windows Forms, vous devez écrire la Main procédure 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.

Conditions requises pour la procédure principale

Un fichier qui s’exécute seul (généralement avec l’extension .exe) doit contenir une Main procédure. Une bibliothèque (par exemple avec l’extension .dll) ne s’exécute pas elle-même et ne nécessite pas de Main procédure. Les conditions requises 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 Main procédure.

  • Les applications Windows Forms s’exécutent elles-mêmes. Toutefois, le compilateur Visual Basic génère automatiquement une Main procédure dans une telle application, et vous n’avez pas besoin d’en écrire une.

  • Les bibliothèques de classes ne nécessitent pas de Main procédure. Il s’agit notamment des bibliothèques de contrôle Windows et des bibliothèques de contrôle 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 Main procédure. Elle peut prendre des arguments ou non, et elle peut renvoyer une valeur ou non.

Remarque

Si vous déclarez Main dans une classe, vous devez utiliser le Shared mot clé. Dans un module, Main n'a pas besoin d'être Shared.

  • La façon la plus simple consiste à déclarer une Sub procédure qui ne prend pas d’arguments ni retourne une 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 Integer valeur, 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éclarer Main en tant que Function procédure au lieu d’une Sub procédure.

    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 prendre un String tableau 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
    

Voir aussi