WriteConsole函数将字符串写入从当前光标位置开始的控制台屏幕缓冲区。
BOOL WriteConsole(
HANDLE 【hConsoleOutput】, | //处理控制台屏幕缓冲区 |
CONST VOID *【lpBuffer】, | //指向缓冲区的指针写入 |
DWORD 【nNumberOfCharsToWrite】, | //要写入的字符数 |
LPDWORD 【lpNumberOfCharsWritten】, | //指向写入的字符数的指针 |
LPVOID 【lpReserved】 | //保留 |
); |
参数
【hConsoleOutput】
标识要写入的控制台屏幕缓冲区。句柄必须具有GENERIC_WRITE权限。
【lpBuffer】
指向包含要写入屏幕缓冲区的字符的缓冲区。
【nNumberOfCharsToWrite】
指定要写入的字符数。
【lpNumberOfCharsWritten】
指向接收实际写入的字符数的32位变量。
【lpReserved】
Reserved; must be NULL.
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
WriteConsole将字符写入控制台屏幕缓冲区。它的行为类似于WriteFile函数,除了可以使用Unicode(宽字符)或ANSI模式。要创建一个维护与两种模式兼容的一组源的应用程序,请使用WriteConsole而不是WriteFile.尽管WriteConsole只能与控制台屏幕缓冲区句柄一起使用,但可以与其他句柄(如文件或管道)一起使用WriteFile.如果与被重定向为控制台句柄以外的标准句柄一起使用,WriteConsole将失败。
虽然应用程序可以使用ANSI模式中的WriteConsole编写ANSI字符,但控制台不支持ANSI转义序列。然而,一些Win32功能提供了等效的功能:例如SetCursorPos,SetConsoleTextAttribute和GetConsoleCursorInfo.
WriteConsole将字符写入当前光标位置的屏幕缓冲区。光标位置随着字符的写入而前进。SetConsoleCursorPosition功能设置当前光标位置。
字符是使用与屏幕缓冲区相关联的前景和背景颜色属性编写的。SetConsoleTextAttribute功能可以更改这些颜色。要确定当前的颜色属性和当前的光标位置,请使用GetConsoleScreenBufferInfo.
影响WriteFile行为的所有输入模式对WriteConsole具有相同的效果。要检索并设置控制台屏幕缓冲区的输出模式,请使用GetConsoleMode和SetConsoleMode功能。
Windows NT:此函数使用控制台当前代码页中的Unicode字符或8位字符。控制台的代码页最初默认为系统的OEM代码页。要更改控制台的代码页,请使用SetConsoleCP或SetConsoleOutputCP功能,或使用CHCPsk或mode con cp select=命令。
也可以看看
GetConsoleCursorInfo, GetConsoleMode, GetConsoleScreenBufferInfo, ReadConsole, SetConsoleCP, SetConsoleCursorPosition, SetConsoleMode, SetConsoleOutputCP, SetConsoleTextAttribute, SetCursorPos, WriteFile