Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Cada aplicación de Visual Basic debe contener un procedimiento denominado Main
. Este procedimiento actúa como punto de partida y control general para la aplicación. .NET Framework llama a tu Main
procedimiento cuando ha cargado tu aplicación y está listo para transferirle el control. A menos que cree una aplicación de Windows Forms, debe escribir el Main
procedimiento para las aplicaciones que se ejecutan por sí mismas.
Main
contiene el código que se ejecuta primero. En Main
, puede determinar qué formulario se va a cargar primero cuando se inicia el programa, averiguar si ya se está ejecutando una copia de la aplicación en el sistema, establecer un conjunto de variables para la aplicación o abrir una base de datos que requiera la aplicación.
Requisitos para el procedimiento principal
Un archivo que se ejecuta por sí mismo (normalmente con la extensión .exe) debe contener un Main
procedimiento. Una biblioteca (por ejemplo, con la extensión .dll) no se ejecuta por sí sola y no requiere un Main
procedimiento. Los requisitos para los distintos tipos de proyectos que puede crear son los siguientes:
Las aplicaciones de consola se ejecutan por sí mimas y es necesario proporcionar al menos un procedimiento
Main
.Las aplicaciones de Windows Forms se ejecutan por sí mismas. Sin embargo, el compilador de Visual Basic genera automáticamente un
Main
procedimiento en dicha aplicación y no es necesario escribir uno.Las bibliotecas de clases no requieren un
Main
procedimiento. Entre ellas se incluyen las bibliotecas de control de Windows y las bibliotecas de control web. Las aplicaciones web se implementan como bibliotecas de clases.
Declarar el procedimiento principal
Hay cuatro maneras de declarar el Main
procedimiento. Puede tomar argumentos o no, y puede devolver un valor o no.
Nota:
Si declara Main
en una clase, debe usar la Shared
palabra clave . En un módulo, Main
no es necesario que sea Shared
.
La manera más sencilla es declarar un
Sub
procedimiento que no toma argumentos ni devuelve un 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
también puede devolver unInteger
valor, que el sistema operativo usa como código de salida para el programa. Otros programas pueden probar este código examinando el valor ERRORLEVEL de Windows. Para devolver un código de salida, debe declararMain
como unFunction
procedimiento en lugar de unSub
procedimiento.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
también puede tomar unaString
matriz como argumento. Cada cadena de la matriz contiene uno de los argumentos de la línea de comandos que se usan para invocar el programa. Puede realizar diferentes acciones en función de sus 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
Puede declarar
Main
para examinar los argumentos de la línea de comandos, pero no devolver un código de salida, como se indica a continuación.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