Функция ReadConsole


Функция ReadConsole читает символьный ввод данных из консольного буфера ввода и удаляет их из буфера.

Синтаксис

BOOL ReadConsole(

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

);

Параметры

hConsoleInput

[in] Дескриптор консольного буфера ввода. Дескриптор должен иметь право доступа GENERIC_READ. Для получения дополнительной информации, см. статью Защита буфера и права доступа в консоли.

lpBuffer

[out] Указатель на буфер, который принимает прочитанные данные из консольного буфера ввода. Общий размер требуемого буфера, должен быть меньше чем 64КБ

nNumberOfCharsToRead

[in] Число TCHARs для чтения. Размер буфера, указанного параметром lpBuffer, должен быть, по крайней мере, nNumberOfCharsToRead * sizeof (TCHAR) байт.

lpNumberOfCharsRead

[out] Указатель на переменную, которая принимает число фактически прочитанных TCHARs.

lpReserved

[in] Зарезервировано, должно быть ПУСТО (NULL).

Возвращаемые значения

Если функция завершается успешно, величина возвращаемого значения - не ноль.

Если функция завершается с ошибкой, величина возвращаемого значения - ноль. Чтобы получать расширенные данные об ошибках, вызовите функцию GetLastError.

Замечания

Функция ReadConsole читает ввод информации с клавиатуры из буфера ввода консоли. Она ведет себя подобно функции ReadFile, за исключением того, что может читать или в режиме Уникода (расширенный 16-битный алфавит) или ANSI. Чтобы иметь прикладные программы, которые поддерживают единственный набор источников информации, совместимый с обоими режимами, используют функцию ReadConsole, а не ReadFile. Хотя функция ReadConsole может использоваться только с дескриптором консольного буфера ввода, ReadFile может использоваться с другими дескрипторами (типа файлов или каналов). Функция ReadConsole терпит неудачу, если используется со стандартным дескриптором, который был переназначен, чтобы быть несколько другим, чем консольный дескриптор.

Все режимы ввода данных, которые воздействуют на поведение функции ReadFile, имеют то же самое воздействие на ReadConsole. Чтобы получить и установить режимы ввода данных консольного буфера ввода, используйте функции GetConsoleMode и SetConsoleMode.

Если буфер ввода содержит события ввода другие, а не события клавиатуры (типа событий с мышью или событий изменения размеров окна), они не сбрасываются. Эти события могут читаться только при помощи использования функции ReadConsoleInput.

Windows NT/2000/XP: Эта функция использует или символы Unicode или 8-разрядные символы текущей кодовой страницы консоли. Кодовая страница консоли вначале устанавливается по умолчанию как системная кодовая страница (OEM).

Чтобы изменить кодовую страницу консоли, используйте функции SetConsoleCP или SetConsoleOutputCP, или используйте команды chcp или mode con cp select=.

Windows 95/98/Me: функция ReadConsoleW поддерживается Microsoft Layer for Unicode. Чтобы использовать его, Вы должны добавить некоторые файлы к вашему приложению, как изложено в Microsoft Layer for Unicode для систем Windows 95/98/Me.

Смотри также

Обзор консольных приложений, Функции консоли, GetConsoleMode, ReadConsoleInput, ReadFile, SetConsoleCP, SetConsoleMode, SetConsoleOutputCP, WriteConsole

Размещение и совместимость ReadConsole

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

Kernel32.lib

Заголовочный файл

 

- объявлено в

Wincon.h

- включено в

Windows.h

Unicode

Реализуется как Unicode и ANSI в версиях Windows NT/2000/XP. А также поддерживает Microsoft Layer for Unicode

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz