На VBasic 6 писать консольные приложения по сути это извращение, так как язык для этого не приспособлен,
и требуется использование функций WinAPI . Поэтому, у кого ностальгия по Дос программированию,
то воспользуйтесь GW- Basic или Quick-Basic:).
Идеально консольные приложения писать на С++.
Но в учебных целях объясню как писать консольное приложение и на VB.
Я напишу не банальное "Хеллё ворлд" ,а настоящее приложение, которое считывает строку с клавиатуры
и выводит на экран. То есть в этом приложении есть всё, что нужно для написания абсолютно любых
консольных приложений!!!
Для начала создаём main-проект, для этого добавляем к проекту пустой модуль, а в свойствах проекта устанавливаем,
что проект запускается не из формы, а именно из sub main, как видете напоминает Си
На картинке объвёл этот параметр красным!!!
Теперь в модуль надо поместить декларации нужных функций, их не много.
Это функции для создания консоли, ввода-вывода в консоль WriteConsole и ReadConsole
и функция задержки Sleep .
Option Explicit
Declare Function AllocConsole Lib "kernel32" () As Long
Declare Function FreeConsole Lib "kernel32" () As Long
Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Declare Function GetStdHandle Lib "kernel32" (ByVal nStdHandle As Long) As Long
Declare Function ReadConsole Lib "kernel32" Alias "ReadConsoleA" _
(ByVal hConsoleInput As Long, ByVal lpBuffer As String, ByVal _
nNumberOfCharsToRead As Long, lpNumberOfCharsRead As Long, lpReserved As Any) As Long
Declare Function WriteConsole Lib "kernel32" Alias "WriteConsoleA" _
(ByVal hConsoleOutput As Long, lpBuffer As Any, ByVal _
nNumberOfCharsToWrite As Long, lpNumberOfCharsWritten As Long, _
lpReserved As Any) As Long
Declare Function Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) As Long
А теперь собственно код:
Private Sub Main()
Создаём консоль, объявляем и инициализируем нужные переменные!
AllocConsole
Dim hOut, hIn As Long
hOut = GetStdHandle(-11&)
hIn = GetStdHandle(-10&)
В переменной s2 будем хранить символьную строку.
Dim s2 As String * 256
Вводим значение с клавиатуры.
ReadConsole hIn, s2, Len(s2), vbNull, vbNull
Формируем строчку для вывода ( убираем мусор ).
s2 = Left$(s2, InStr(s2, Chr$(0)) - 1)
Выводим на экран.
WriteConsole hOut, ByVal s2, Len(s2), vbNull, vbNull
Задержка.
Sleep 4000
Закрываем консоль.
CloseHandle hOut
FreeConsole
End Sub
Ну вот и всё. Надеюсь, что понятно всё описал.
Консольные приложения можно использовать для программ, в которых графический интерфейс не нужен,
Например написание программ для подбора паролей, шифрования, трансляторы, компиляторы, дизассемблеры,
НЕХ-редакторы, троянчики и разные шпионы и многое другое.