Запись в консоль DOS из ассемблерной программы - PullRequest
0 голосов
/ 27 апреля 2020

Из других вопросов я вижу, что многие пытались записать на консоль DOS Windows 10 из ассемблерной программы. Для сборки и ссылки я использую команду ML64, которая предоставляется в командной строке DOS с Visual Studio 2019. Поскольку я также запускаю свою программу из той же командной строки DOS, я хотел написать некоторые выходные данные. Я упоминаю ML64, потому что я прочитал, что старый метод прямого кодирования прерываний для записи на консоль больше не разрешен в 64-битном коде. Я пытаюсь использовать вызов GetStdHandle с последующим вызовом WriteConsoleA. Вся документация, которую я могу найти, относится к WriteConsole, но в моей системе эта внешняя ссылка на kernel32.lib не разрешена, но WriteConsoleA найден.

В любом случае, на мой конкретный вопрос c: не вдаваясь во все детали моей программы, которая пока не дает никакого результата, я задаюсь вопросом, может быть, я упускаю общую картину. Очевидно, что целью WriteConsoleA является запись в консоль, но в то время, когда я вызываю GetStdHandle, я не смог указать, какой это тип ввода / вывода, для которого я хочу получить дескриптор для . Разве не должно быть способа объединить эти два вызова вместе, заранее указав, что запрашиваемый дескриптор должен использоваться для записи в консоль? Или это даже не фактор? Я нащупываю здесь ...

...