读书人

mfc下unicode编码处理,该如何解决

发布时间: 2012-04-10 21:03:56 作者: rapoo

mfc下unicode编码处理
最近在搞mfc,而团队里面都使用unicode编码。
各种字符,字符串类型转换搞得头焦额烂,大家有没有什么惯用的处理方法分享一下?
现在主要以CString处理字符串,但mfc很多时候要 LPCTSTR 作参数传入部件当中,而unicode下,两者无法强制转换,这样更是很不安全的。

总的来说,小弟现在问题就是如何在unicode编码下,将CString便捷地使用到mfc编程当中
诚邀各位分享你的心得体会。

[解决办法]
在我理解, VC中用的unicode是宽字符, 都是可以直接用CString的吧
[解决办法]
改成这样就可以了,_T根据编译器自动识别是否unicode。

C/C++ code
int attribCount = 100;CString a ;a.Format(_T("%d"),attribCount);
[解决办法]
哈,自己经常在ANSI和Unicode之间转换使用如下方式
wchar_t wch[..];
char *ch = (const char*)_bstr_t(wch);
可以看看msdb关于_bstr_t的定义
[解决办法]
所有常量字符串使用_T()宏或者_TEXT()宏 比如 _T("asdfasd")
定义字符串使用 TCHAR
比如 TCHAR str[] = _T("asdfasdf");
这样就OK了
[解决办法]
处理ANSI字符串是直接用引号""就行
处理Unicode字符串需要在引号前加大写L,即L""

读书人网 >C++

热点推荐