Konstantin18ko
@Konstantin18ko
Стоматолог

Какие параметры надо передать в ReadConsole?

format PE console 5.0

include 'win32ax.inc'

entry start

section '.data' data readable writeable
        caption db 'First Win32 program',0
        Message db 'Hello World!',0

section '.code' code readable executable
start:
        stdcall [ReadConsole],GENERIC_READ,Message,13,0,0
        stdcall [ExitProcess],0


section '.relocs' fixups readable writeable

section '.idata' import data readable writeable
        library kernel,'KERNEL32.DLL'
        import kernel,\
        ReadConsole,'ReadConsoleA',\
        ExitProcess,'ExitProcess'


BOOL ReadConsole(

HANDLE hConsoleInput , // дескриптор буфера ввода консоли
LPVOID lpBuffer,              // буфер данных
DWORD nNumberOfCharsToRead,   // число символов для чтения
LPDWORD lpNumberOfCharsRead , // число прочитанных символов
LPVOID lpReserved             // зарезервировано

);

Вроде бы все правильно... Но вроде и нет.
  • Вопрос задан
  • 502 просмотра
Пригласить эксперта
Ответы на вопрос 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
stdcall [ReadConsole],GENERIC_READ,Message,13,0,0

Первым параметром надо дескриптор файла консоли передать. GENERIC_READ -- это не файловый дескриптор, это требуемый доступ к файлу, чтобы ReadConsole могла из него читать. Требуемый дескриптор можно получить вызовом GetStdHandle(STD_INPUT_HANDLE).
И я не уверен, что lpNumberOfCharsRead может быть NULL.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы