Функции и константы для работы с консолью
При работе с консолью необходимо:
· определить номера стандартных устройств (см. файл winuser.h);
· определить дескриптор для заданного устройства;
· обратиться к функции ввода – вывода.
Информация о номерах устройств и требуемых функциях приведена ниже.
Номера стандартный устройств STD_INPUT_HANDLE (DWORD)-10 ввод STD_OUTPUT_HANDLE (DWORD)-11вывод STD_ERROR_HANDLE (DWORD)-12 вывод ошибок Определение дескриптора устройства: HANDLE GetStdHandle( DWORD nStdHandle // номер устройства ); Если ошибка, функция возвращает INVALID_HANDLE_VALUE, которому соответствует значение –1. Ввод данных со стандартного устройства: BOOL ReadConsole( HANDLE hConsoleInput, // дескриптор консоли LPVOID lpBuffer, // адрес буфера, куда читать данные DWORD nNumberOfCharsToRead, // количество читаемых символов LPDWORD lpNumberOfCharsRead, // адрес количества прочитанных символов LPVOID lpReserved // резерв, должен быть NULL ); Функция возвращает true в случае успеха и false в случае ошибки[19] BOOL WriteConsole( HANDLE hConsoleOutput, // дескриптор консоли CONST VOID *lpBuffer, // адрес буфера для записи DWORD nNumberOfCharsToWrite, // количество символов LPDWORD lpNumberOfCharsWritten, // адрес количества символов, которые действительно записаны LPVOID lpReserved // Резерв, должен быть NULL ); |
Пример программы для ввода – вывода строки символов.
ideal
p386
model flat
extrn ExitProcess:proc
extrn GetStdHandle:proc
extrn ReadConsoleA:proc
extrn WriteConsoleA:proc
dataseg
include "win.inc"
din dd 0
dout dd 0
buf db 80 dup (?)
siz dd ?
mystr db 'Input string, please', 13, 10, 0
codeseg
begin:
push STD_INPUT_HANDLE
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий