WinCE 下 RETAILMSG 如何能在串口工具(SSCOM) 中输出汉字

例如,如下的输出:

[Test]path is: \ResidentFlash\Music\MP3\竿 - 莶?.mp3
[Test]path is: \ResidentFlash\Music\MP3\蓝莲花-许巍.mp3

一般情况下,大家都是使用 RETAILMSG 直接输入 TCHAR 型的字符串的,这样的话在串口工具中看到的结果就会像第一行。怎么才能看到如第二行的输出呢?

1 char cName[MAX_PATH];  
2 TCHAR *ptcTst = L"\\ResidentFlash\\Music\\MP3\\蓝莲花-许巍.mp3";     // 测试汉字通过串口工具输出  
3   
4 // 因为串口工具一般只支持 char 型字符串,而不是 Unicode 字符串。所以...  
5 ZeroMemory(cName,sizeof(char) * MAX_PATH);  
6 ::WideCharToMultiByte(CP_ACP, 0, ptcTst, -1, cName, MAX_PATH, NULL, NULL);  
7   
8 RETAILMSG(1,(L"[Test]path is: %S\r\n",cName));  
9 RETAILMSG(1,(L"[Test]path is: %s\r\n",ptcTst));  

使用以上两句输出,在串口调试工具,如: sscom32.exe 中的输出如上行所示。

在使用 VS2005/VS2008 等调试工具时,在 Output 窗口输出时,使用 RETAILMSG(1,(L"[Test]path is: %s\r\n",ptcTst)); 可以看到汉字正确显示。
如果使用 RETAILMSG(1,(L"[Test]path is: %S\r\n",cName)); 则在 VS 工具的 Output 窗口中可能无法看到正确的显示。这时需要使用宏 _DEBUG 来区分实现两种情况,在 Debug/Release 下分别调用不同的实现。
如果无法使用 VS 调试功能,则 RETAILMSG(1,(L"[Test]path is: %S\r\n",cName)); 输出是一个很好的选择。

转载于:https://www.cnblogs.com/91program/p/5200945.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值