CComBSTR Unicode 乱码

zhangjunyu0606 2012-07-06 04:43:04
unicode环境

CComBSTR("测试内容");
以前一直都是这么写,没有问题,但是不知道为什么,现在这样写,转换成BSTR就成了乱码了
CComBSTR(L"测试内容");
这样写就没有问题,很是奇怪

虽然一些 CComBSTR 方法自动将 ANSI 字符串参数转换为 Unicode,但这些方法总是返回 Unicode 格式的字符串。
msdn上面是这么说的,如果我理解的不错,那我这两种写法都应该是没问题的啊

msdn参考
http://msdn.microsoft.com/zh-cn/library/cc485249(v=vs.71).aspx

不知道大家有没有遇到过这种情况,初步怀疑是我的系统环境有问题,经初步测试,在xp下有问题,在win7下面没有问题
由于需要给客户部署,而且客户安装的都是正版xp,求大神给点思路,希望大家能发挥想象力,帮忙顶一下。
...全文
76 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangjunyu0606 2012-07-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

CComBSTR貌似没有提供成员函数自动转换编码,你可以改用CString或者_bstr_t,他们都能直接处理ANSI/UNICODE两种编码,内部帮你转换了
[/Quote]

CComBSTR("测试内容");
这种方式,是经过实战检验可行的,但是到了我这里不知道为什么就不行了。而且刚刚发现,W2A字符转换宏,我这里用的时候,也是会乱码,实在搞不懂是哪里出问题了
redui 2012-07-06
  • 打赏
  • 举报
回复
CComBSTR貌似没有提供成员函数自动转换编码,你可以改用CString或者_bstr_t,他们都能直接处理ANSI/UNICODE两种编码,内部帮你转换了

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧