大虾米(dxm)的技术博客

导航

<2010年1月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

统计

留言簿(0)

随笔分类

随笔档案

文章档案

相册

友情链接

搜索

最新评论

阅读排行榜

评论排行榜

VC 奇怪的问题

一个unicode的工程.
使用  CString sz;
sz+=L"你好";
sz+="你好";
都可以正常工作,但是每当执行完 SHGetFileInfo 后, 再使用sz+="你好";就乱码了.真奇怪啊.

SHFILEINFO *fi = (SHFILEINFO *)new byte[sizeof SHFILEINFO];
 
 LONG lResult = SHGetFileInfo(L"c:\\boot.ini",  
  FILE_ATTRIBUTE_NORMAL,  
  fi,  
  1024*80,  
  SHGFI_SMALLICON |SHGFI_ICON /*| SHGFI_USEFILEATTRIBUTES */);

我后来发现的解决办法:
因为在Unicode下 CString += char* 中文乱码也是情有可原的。应该是非标准的办法。
我发现先转成 _variant_t 然后再加到CString就OK了
比如 sz += _variant_t("大家好");

posted on 2009-12-14 19:00 大虾米(dxm)的技术博客 阅读(2257) 评论(8)  编辑 收藏

评论

# re: VC 奇怪的问题 2009-12-15 13:16 nscboy

VC71编译调试通过
很正常

# re: VC 奇怪的问题 2009-12-16 08:38 apple

单步跟踪,看看sz的缓冲区是在哪一步被修改。

标题  
姓名  
主页
验证码 *
内容   
  登录  使用高级评论  Top
[使用Ctrl+Enter键可以直接提交]