Procedimento principal no Visual Basic
Cada aplicativo Visual Basic deve conter um procedimento chamado Main
. Este procedimento serve como ponto de partida e controle geral para sua aplicação. O .NET Framework chama seu Main
procedimento quando ele carregou 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 Main
procedimento para aplicativos que são executados por conta própria.
Main
Contém o código que é executado primeiro. No Main
, você pode determinar qual formulário deve ser carregado primeiro quando o programa for iniciado, descobrir se uma cópia do seu aplicativo já está em execução no sistema, estabelecer um conjunto de variáveis para 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 extensão .exe) deve conter um Main
procedimento. Uma biblioteca (por exemplo, com extensão .dll) não é executada sozinha e não requer um Main
procedimento. 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
Main
procedimento.Os aplicativos do Windows Forms são executados por conta própria. No entanto, o compilador do Visual Basic gera automaticamente um
Main
procedimento em tal aplicativo e você não precisa escrever um.As bibliotecas de classes não exigem um
Main
procedimento. Estes incluem Bibliotecas de Controlo do Windows e Bibliotecas de Controlo Web. Os aplicativos Web são implantados como bibliotecas de classes.
Declarar o procedimento principal
Existem quatro formas de declarar o Main
procedimento. Pode aceitar argumentos ou não, e pode retornar um valor ou não.
Nota
Se você declarar Main
em uma classe, você deve usar a Shared
palavra-chave. Em um módulo, Main
não precisa ser Shared
.
A maneira mais simples é declarar um
Sub
procedimento 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 umInteger
valor, que o sistema operacional usa como o código de saída para o seu 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 umFunction
procedimento em vez de umSub
procedimento.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 umaString
matriz como um argumento. Cada cadeia de caracteres na matriz contém um dos argumentos de linha de comando usados para invocar o programa. Você pode tomar diferentes ações 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