Функция ReadConsoleOutputCharacter
Важно!
В этом документе описаны функции платформы консоли, которые больше не являются частью стратегии развития экосистемы. Мы не рекомендуем использовать это содержимое в новых продуктах, но мы будем продолжать поддерживать существующие использования для неопределенного будущего. Наше предпочтительное современное решение ориентировано на последовательности виртуальных терминалов для обеспечения максимальной совместимости в кроссплатформенных сценариях. Дополнительные сведения об этом решении по проектированию можно найти в классической консоли и в документе виртуального терминала .
Копирует ряд символов из последовательных ячеек буфера экрана консоли, начиная с указанного расположения.
Синтаксис
BOOL WINAPI ReadConsoleOutputCharacter(
_In_ HANDLE hConsoleOutput,
_Out_ LPTSTR lpCharacter,
_In_ DWORD nLength,
_In_ COORD dwReadCoord,
_Out_ LPDWORD lpNumberOfCharsRead
);
Параметры
hConsoleOutput [ввод]
Дескриптор буфера экрана консоли. Этот дескриптор должен иметь право доступа GENERIC_READ. Дополнительные сведения см. в статье Безопасность и права доступа для буфера консоли.
lpCharacter [out]
Указатель на буфер, который получает символы, считываемые из буфера экрана консоли.
nLength [in]
Количество ячеек буфера экрана, из которых следует читать. Размер буфера, на который указывает параметр lpCharacter , должен быть nLength * sizeof(TCHAR)
.
dwReadCoord [in]
Координаты первой ячейки в буфере экрана консоли, из которой следует читать символы. Элемент X структуры COORD — это столбец, а элемент Y — строка.
lpNumberOfCharsRead [out]
Указатель на переменную, получающую количество символов, фактически считываемых.
Возвращаемое значение
Если функция выполняется успешно, возвращается ненулевое значение.
Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Замечания
Если число символов, считываемых из строки буфера экрана, выходит за пределы указанной строки буфера экрана, символы считываются из следующей строки. Если число символов, считываемых из буфера экрана консоли, выходит за пределы буфера экрана консоли, считываются символы до конца буфера экрана консоли.
Эта функция использует либо символы Юникода, либо 8-разрядные символы из текущей кодовой страницы консоли. Кодовая страница консоли по умолчанию изначально соответствует кодовой странице OEM системы. Чтобы изменить кодовую страницу консоли, используйте функции SetConsoleCP или SetConsoleOutputCP. Пользователи прежних версий могут также использовать команды chcp или mode con cp select= (но это не рекомендуется для новой разработки).
Совет
Этот API не рекомендуется и не имеет эквивалента виртуального терминала . Это решение намеренно выравнивает платформу Windows с другими операционными системами, где отдельное клиентское приложение, как ожидается, запоминает собственное состояние рисования для дальнейшего управления. Удаленное взаимодействие приложений с помощью межплатформенных служебных программ и транспорта, таких как SSH, может не работать должным образом, если используется этот API.
Requirements
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Верхний колонтитул | ConsoleApi2.h (через WinCon.h, включая Windows.h) |
Библиотека | Kernel32.lib |
DLL-библиотеки | Kernel32.dll |
Имена Юникода и ANSI | ReadConsoleOutputCharacterW (Юникод) и ReadConsoleOutputCharacterA (ANSI) |