#include <stdio.h> #include <windows.h> int main(void) { TCHAR ch[] = __TEXT("我是中国人"); int len = lstrlen(ch);//返回字符长度 //返回指定字符串的字节长度(ANSI版)或字符长度(双字节标准版);其中不包括终止NULL字符 DWORD dwChars; HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);//获取标准设备句柄 //标准设备(标准输入、标准输出或标准错误) //包含在头文件windows.h中 //参数:STD_INPUT_HANDLE 标准输入句柄 // STD_OUTPUT_HANDLE 标准输出句柄 // STD_ERROR_HANDLE 错误的设备句柄 //返回值:如果该函数成功,则返回值为指定设备的句柄 HANDLE // 如果函数失败,则返回值为 INVALID_HANDLE_VALUE。 要获得更多的错误信息,请调用 GetLastError // 如果应用程序没有关联的标准句柄(例如在交互式桌面上运行的服务),并且尚未重定向这些句柄,则返回值为 NULL if (hStdout == INVALID_HANDLE_VALUE) { printf("INVALID_HANDLE_VALUE"); return -1; } BOOL b = WriteConsole(hStdout, ch, len, &dwChars, NULL);//从当前光标位置写入一个字符串到屏幕缓冲区 //参数1:控制台屏幕缓冲区的句柄。该句柄必须具有的GENERIC_WRITE的访问权限 //参数2:要写入控制台屏幕缓冲区字符的缓冲区的指针 //参数3:要写入的字符数。如果指定的字符数的总大小超过可用的堆,该函数会ERROR_NOT_ENOUGH_MEMORY失败 //参数4:返回实际输出字符串的长度-->指针 可以NULL //参数5:备用参数 NULL //返回值:如果函数成功,则返回值为非零值。 // 如果该函数失败,则返回值为零。要获取错误信息,请调用GetLastError int n = getchar(); return 0; }
标签:字符,HANDLE,GetStdHandle,标准,句柄,获取,返回值,NULL From: https://www.cnblogs.com/liming19680104/p/17002845.html