尽管已经看了好多关于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'。

解决方案 »

  1.   

    还有一个问题,如何将TCHAR转换为CString?format()不知吃TCHAR阿
      

  2.   

    设置工程的属性,设置成使用Unicode字符集,就可以了
    改成这样
    CString str=_T("大家好abc");
    TCHAR a=str.GetAt(1);
    if(a==_T('家'))AfxMessageBox(_T("bbb"));
      

  3.   

    什么版本?
    vc6的话应该在C/C++ 预处理 里面定义_UNICODE;UNICODE
    然后在linker里面,找入口点
    设置成wWinMainCrtStartupvs2003在常规->字符集里面
      

  4.   

    请问各位高手,ltrap (LuckyTrap)的代码除了AfxMessageBox("bbb");该为AfxMessageBox(_T("bbb"));以外,其它代码都是对的吧?不成功的问题只是预处理里面定义_UNICODE;UNICODE的问题吗?