Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Каждое приложение Visual Basic должно содержать процедуру с именем Main. Эта процедура служит отправной точкой и общим элементом управления для приложения. Платформа .NET Framework вызывает Main процедуру, когда загружено ваше приложение и готово передать ему управление. Если вы не создаете приложение Windows Forms, необходимо написать процедуру Main для приложений, которые выполняются самостоятельно.
Main содержит код, который выполняется сначала. В Mainэтом случае можно определить, какая форма должна быть загружена сначала при запуске программы, выяснить, уже ли в системе запущена копия приложения, установить набор переменных для приложения или открыть базу данных, требуемую приложением.
Требования к основной процедуре
Файл, который выполняется самостоятельно (обычно с расширением .exe) должен содержать процедуру Main . Библиотека (например, с расширением .dll) не выполняется самостоятельно и не требует Main процедуры. Требования к различным типам проектов, которые можно создать, приведены ниже.
Консольные приложения выполняются самостоятельно, и необходимо предоставить по крайней мере одну
Mainпроцедуру.Приложения Windows Forms выполняются самостоятельно. Однако компилятор Visual Basic автоматически создает процедуру
Mainв таком приложении, и ее не нужно писать.Библиотеки классов не требуют
Mainпроцедуры. К ним относятся библиотеки элементов управления Windows и библиотеки веб-элементов управления. Веб-приложения развертываются как библиотеки классов.
Объявление основной процедуры
Существуют четыре способа объявления процедуры Main. Он может принимать аргументы или нет, и он может возвращать значение или нет.
Замечание
Если вы объявляете Main в классе, необходимо использовать ключевое Shared слово. В модуле Main не требуется Shared.
Самый простой способ — объявить процедуру
Sub, которая не принимает аргументы или возвращает значение.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 ModuleMainтакже может возвращать значение, которое операционнаяIntegerсистема использует в качестве кода выхода для программы. Другие программы могут протестировать этот код, проверив значение Windows ERRORLEVEL. Чтобы вернуть код выхода, необходимо объявитьMainкакFunctionпроцедуру вместоSubпроцедуры.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 ModuleMainтакже может приниматьStringмассив в качестве аргумента. Каждая строка в массиве содержит один из аргументов командной строки, используемых для вызова программы. Вы можете выполнять различные действия в зависимости от их значений.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Вы можете объявить
Main, чтобы проверить аргументы командной строки, но не возвращать код выхода, как показано ниже.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