Procedimento principal no Visual Basic
Todo aplicativo do Visual Basic deve conter um procedimento chamado Main
. Este procedimento serve como ponto de partida e controle geral para seu aplicativo. O .NET Framework chama o procedimento Main
quando ele carrega seu aplicativo e está pronto para passar o controle para ele. A menos que você esteja criando um aplicativo do Windows Forms, você deve escrever o procedimento Main
para aplicativos executados por conta própria.
Main
contém o código que é executado primeiro. Em Main
, você pode determinar qual formulário deve ser carregado primeiro quando o programa for iniciado, descobrir se uma cópia do aplicativo já está em execução no sistema, estabelecer um conjunto de variáveis para o seu aplicativo ou abrir um banco de dados que o aplicativo exige.
Requisitos para o procedimento principal
Um arquivo que é executado por conta própria (geralmente com a extensão .exe) deve conter um procedimento Main
. Uma biblioteca (por exemplo, com extensão .dll) não é executada por conta própria e não requer um procedimento Main
. Os requisitos para os diferentes tipos de projetos que você pode criar são os seguintes:
Os aplicativos de console são executados por conta própria, e você deve fornecer pelo menos um procedimento
Main
.Os aplicativos do Windows Forms são executados por conta própria. No entanto, o compilador do Visual Basic gera automaticamente um procedimento
Main
em um aplicativo como esses, e você não precisa escrever um.Bibliotecas de classes não exigem um procedimento
Main
. Elas incluem bibliotecas de controle do Windows e bibliotecas de controle da Web. Aplicativos Web são implantados como bibliotecas de classes.
Declarar o procedimento principal
Há quatro maneiras de declarar o procedimento Main
. Ele pode usar argumentos ou não, e pode retornar um valor ou não.
Observação
Se você declarar Main
em uma classe, deverá usar a palavra-chave Shared
. Em um módulo, Main
não precisa ser Shared
.
A maneira mais simples é declarar um procedimento
Sub
que não aceita argumentos ou retorna um valor.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
também pode retornar um valorInteger
, que o sistema operacional usa como o código de saída do programa. Outros programas podem testar esse código examinando o valor ERRORLEVEL do Windows. Para retornar um código de saída, você deve declararMain
como um procedimentoFunction
em vez de um procedimentoSub
.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
também pode tomar uma matrizString
como um argumento. Cada cadeia de caracteres na matriz contém um dos argumentos de linha de comando usados para invocar seu programa. Você pode executar ações diferentes dependendo de seus valores.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
Você pode declarar
Main
para examinar os argumentos de linha de comando, mas não retornar um código de saída, da seguinte maneira.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