Как сделать консольное приложение VB6, которое выводит вывод в командную строку - PullRequest
0 голосов
/ 14 января 2019

Я хочу создать приложение командной строки VB6, которое выводит свой результат в командную строку (аналогично printf в C). Однако ни одно из найденных решений не работает для меня.

У меня VB6 SP6, Windows 7 x64.

Я пытался Как записать в отладочную консоль в VB6? чтобы разместить это, но в этой строке

Public SIn As Scripting.TextStream

компилятор возвращает ошибку: Определяемый пользователем тип не определен

Почему это не работает? Есть ли способ сделать это?

Я бы предпочел API-решение (не зависит от системы).

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Вы можете вручную отредактировать файл .vbp вашего проекта Std-EXE, чтобы добавить эти две строки в конец

[VBCompiler]
LinkSwitches=/SUBSYSTEM:CONSOLE

. , , как здесь .

Это позволяет компилировать консольное приложение прямо из IDE, не нужно использовать editbin для изменения подсистемы в посткомпиляции PE-заголовка.

Для консольного ввода-вывода просто используйте соответствующие функции API, например здесь . Вы также можете печатать на консоли в цвете, например здесь .

0 голосов
/ 18 января 2019

Лучшим решением является код Карла Петерсона (http://vb.mvps.org/samples/Console/), который содержит полный исходный код, интерактивную отладку, несколько примеров и множество других замечательных функций. Нет необходимости в скриптах.

Но если вы создаете EXE-файл (и вы обязательно это сделаете!), абсолютно необходимо исправить результирующего EXE-файла (объяснение и руководство находятся на той же странице Петерсона), т.е. установить бит PE в заголовке EXE.
В противном случае, если в EXE есть какое-либо ожидание ввода, EXE войдет в бесконечный цикл и никогда не вернется (но в командной строке это выглядит как завершенное, потому что отображается приглашение). Если вы попытаетесь запустить EXE несколько раз, вы увидите, что эти бесконечные процессы заполняются в Диспетчере задач / Процессы).

...