Функция
WriteConsoleФункция
WriteConsole записывает символьную строку в экранный буфер консоли, начинающийся с текущей позиции курсора.Синтаксис
BOOL WriteConsole( hConsoleOutput, // дескриптор экранного буфера CONST VOID * lpBuffer, // буфер записи DWORD nNumberOfCharsToWrite, // число символов для записи LPDWORD lpNumberOfCharsWritten, // число записанных символов LPVOID lpReserved // зарезервировано ); |
Параметры
hConsoleOutput
[in] Дескриптор экранного буфера консоли. Дескриптор должен иметь право доступа
GENERIC_READ. Для получения дополнительной информации, см. статью Защита буфера и права доступа в консоли.lpBuffer
[in] Указатель на буфер, содержащий символы, которые будут записаны в экранный буфер консоли. Общий размер должен быть меньше чем 64КБ.
nNumberOfCharsToWrite
[in] Число
TCHARs для чтения.lpNumberOfCharsWritten
[out] Указатель на переменную, которая принимает число фактических записей
TCHARs.lpReserved
Зарезервировано, должно быть ПУСТО (NULL).
Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения - не ноль.
Если функция завершается с ошибкой, величина возвращаемого значения - ноль. Чтобы получать расширенные данные об ошибках, вызовите функцию
GetLastError.Замечания
Функция
WriteConsole записывает символы в экранный буфер консоли. Она ведет себя подобно функции WriteFile и, кроме того, может записывать или в режиме ANSI или УНИКОДЕ. Чтобы создать приложение, которое поддерживает единственный набор источников информации, совместимых с обоими режимами, используйте функцию WriteConsole, а не WriteFile. Хотя WriteConsole может быть использована только с дескриптором экранного буфера консоли, WriteFile может быть использована с другими дескрипторами (такими как файлы или каналы). Функция WriteConsole завершается ошибкой, если используется со стандартным дескриптором, который был переназначен, чтобы быть несколько другим, чем консольный дескриптор.Хотя приложение может использовать
WriteConsole в режиме ANSI, чтобы записать символы ANSI, консоли не поддерживают управляющие последовательности ANSI. Однако, некоторые функции предоставляют эквивалентные функциональные возможности: например, SetCursorPos, SetConsoleTextAttribute и GetConsoleCursorInfo.Функция
WriteConsole записывает символы в экранном буфере консоли в текущей позиции курсора. Позиция курсора продвигается вперед, по мере написания символов. Функция SetConsoleCursorPosition устанавливает текущую позицию курсора.Символы пишутся, с использованием атрибутов цвета текста и цвета фона, связанных с экранным буфером консоли.
Функция SetConsoleTextAttribute изменяет эти цвета. Чтобы выяснять текущие атрибуты цвета и текущую позицию курсора, используйте функцию GetConsoleScreenBufferInfo.Все режимы ввода данных, которые воздействуют на характер работы
WriteFile, имеют то же самое воздействие и на WriteConsole. Чтобы извлекать данные и устанавливать режимы вывода экранного буфера консоли, используйте функции GetConsoleMode и SetConsoleMode.Windows NT/2000/XP: Эта функция использует или символы Unicode или символы ANSI текущей кодовой страницы консоли. Кодовая страница консоли вначале устанавливается по умолчанию как системная кодовая страница (
OEM). Чтобы изменить кодовую страницу консоли, используйте функции SetConsoleCP или SetConsoleOutputCP, или используйте команды chcp или mode con cp select=.Windows 95/98/Me: функция
WriteConsoleW поддерживается Microsoft Layer for Unicode. Чтобы использовать его, Вы должны добавить некоторые файлы к вашему приложению, как изложено в Microsoft Layer for Unicode для систем Windows 95/98/Me.Смотри также
Обзор консольных приложений, Функции консоли, GetConsoleCursorInfo, GetConsoleMode, GetConsoleScreenBufferInfo, ReadConsole, SetConsoleCP, SetConsoleCursorPosition, SetConsoleMode, SetConsoleOutputCP, SetConsoleTextAttribute, SetCursorPos, WriteFile
Размещение и совместимость WriteConsole |
|
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 |
Замечания по платформе |
Не имеется |