WriteConsole

【勇芳软件工作室】汉化HomePreviousNext

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功能提供了等效的功能:例如SetCursorPosSetConsoleTextAttributeGetConsoleCursorInfo.

WriteConsole将字符写入当前光标位置的屏幕缓冲区。光标位置随着字符的写入而前进。SetConsoleCursorPosition功能设置当前光标位置。

字符是使用与屏幕缓冲区相关联的前景和背景颜色属性编写的。SetConsoleTextAttribute功能可以更改这些颜色。要确定当前的颜色属性和当前的光标位置,请使用GetConsoleScreenBufferInfo.

影响WriteFile行为的所有输入模式对WriteConsole具有相同的效果。要检索并设置控制台屏幕缓冲区的输出模式,请使用GetConsoleModeSetConsoleMode功能。

Windows NT:此函数使用控制台当前代码页中的Unicode字符或8位字符。控制台的代码页最初默认为系统的OEM代码页。要更改控制台的代码页,请使用SetConsoleCPSetConsoleOutputCP功能,或使用CHCPskmode con cp select=命令。

也可以看看

GetConsoleCursorInfo, GetConsoleMode, GetConsoleScreenBufferInfo, ReadConsole, SetConsoleCP, SetConsoleCursorPosition, SetConsoleMode, SetConsoleOutputCP, SetConsoleTextAttribute, SetCursorPos, WriteFile