关于char转换成LPCWSTR的问题

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值