Procedimiento Main en Visual Basic
Cada Visual Basic aplicación debe contener un procedimiento denominado Main . Este procedimiento actúa como punto de partida y control general de la aplicación. El .NET Framework llama Main al procedimiento cuando ha cargado la aplicación y está listo para pasar el control a ella. A menos que esté creando una Windows Forms, debe escribir el procedimiento Main para las aplicaciones que se ejecutan por sí solas.
Main contiene el código que se ejecuta primero. En , puede determinar qué formulario se va a cargar primero cuando se inicia el programa, averiguar si una copia de la aplicación ya se está ejecutando en el sistema, establecer un conjunto de variables para la aplicación o abrir una base de datos que la aplicación Main requiere.
Requisitos del procedimiento principal
Un archivo que se ejecuta por sí mismo (normalmente con extensiones .exe) debe contener un Main procedimiento. Una biblioteca (por ejemplo, con extensiones .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í solas y debe proporcionar al menos un
Mainprocedimiento.Windows Las aplicaciones de formularios se ejecutan por sí solas. Sin embargo, Visual Basic compilador genera automáticamente un procedimiento en este tipo de aplicación y no es necesario
Mainescribir uno.Las bibliotecas de clases no requieren un
Mainprocedimiento. Entre ellas se Windows bibliotecas de control y 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 en Main una clase, debe usar la palabra Shared clave . En un módulo, Main no necesita ser Shared .
La manera más sencilla es declarar un procedimiento
Subque 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 ModuleMaintambién puede devolver unIntegervalor , que el sistema operativo usa como código de salida para el programa. Otros programas pueden probar este código examinando el Windows ERRORLEVEL. Para devolver un código de salida, debe declararMaincomo un procedimiento en lugar de unFunctionSubprocedimiento.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 ModuleMaintambién puede tomar unaStringmatriz como argumento. Cada cadena de la matriz contiene uno de los argumentos de línea de comandos usados 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 ModulePuede declarar para
Mainexaminar los argumentos de la línea de comandos, pero no devolver un código de salida, como se muestra 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