尽管已经看了好多关于unicode的帖子,但我自己编写出来的代码依然无法执行。定义了
#define _UNICODE
#define UNICODE//如果在这里定义,无须在工程配置的字符集选项中设置也可以使用unicode吧!接着在某个按钮函数内写:
CString str=_T("大家好abc");
TCHAR a=str.GetAt(1);
if(a=='家')AfxMessageBox("bbb");
单击按钮以后没有反应。
如果改写成:
CString str=_T("abc");
TCHAR a=str.GetAt(1);
if(a=='b')AfxMessageBox("bbb");
则可以弹出bbb。
按理来说宽字符可以支持中文,那我这么写为什么不成功?我想实现的功能是,对于混合型的CString,(例如上述CString str=_T("大家好abc");)
str.GetAt(1)可以得到宽字符‘家’,str.GetAt(3)可以得到宽字符'a'。
#define _UNICODE
#define UNICODE//如果在这里定义,无须在工程配置的字符集选项中设置也可以使用unicode吧!接着在某个按钮函数内写:
CString str=_T("大家好abc");
TCHAR a=str.GetAt(1);
if(a=='家')AfxMessageBox("bbb");
单击按钮以后没有反应。
如果改写成:
CString str=_T("abc");
TCHAR a=str.GetAt(1);
if(a=='b')AfxMessageBox("bbb");
则可以弹出bbb。
按理来说宽字符可以支持中文,那我这么写为什么不成功?我想实现的功能是,对于混合型的CString,(例如上述CString str=_T("大家好abc");)
str.GetAt(1)可以得到宽字符‘家’,str.GetAt(3)可以得到宽字符'a'。
改成这样
CString str=_T("大家好abc");
TCHAR a=str.GetAt(1);
if(a==_T('家'))AfxMessageBox(_T("bbb"));
vc6的话应该在C/C++ 预处理 里面定义_UNICODE;UNICODE
然后在linker里面,找入口点
设置成wWinMainCrtStartupvs2003在常规->字符集里面