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);
本文讨论了在Windows环境下使用字符处理函数时遇到的问题,包括如何正确使用`wsprintf`、`sprintf`和`_itow`等函数来避免乱码和仅显示部分字符的情况。重点强调了在不同场景下选择合适宽字符版本的重要性。
5359

被折叠的 条评论
为什么被折叠?



