char buffer[80]; 方法一: wsprintf(buffer,L"WM_CHAR: Character = %c ",ascii_code); TextOut(hdc, 0,0,(LPCWSTR)buffer, strlen(buffer)); 这个只能显示第一个字母“W” 方法二: sprintf((LPCWSTR)buffer,L"Key State = 0X%X ",key_state); TextOut(hdc, 0,16,(LPCWSTR)buffer, strlen(buffer)); 这个出现的是乱码! 方法三: sprintf(buffer,L"Key State = 0X%X ",key_state); TextOut(hdc, 0,16,buffer, strlen(buffer));
最有效的方法:
在windows下几乎所有处理字符的函数都有其对应的宽字符版本。
int i=144;//GetLastError();
//char str[25]={0};
wchar_t chResult[128]={0};
_itow(i,chResult,10);