我的vc6.0是中文版的,并没有定义_UNICODE,但是以下
TCHAR  strText[20] ="为什么";
m_strTextCtrEdit.SetWindowText(strText);
照样能正常显示在编辑框里。为什么?

解决方案 »

  1.   

    TCHAR并不是unicode,在支持unicode的情况下,它才是unicode
      

  2.   

    TCHAR  是双编译支持的,如果定义了_UNICODE,则展开为WCHAR,如果没有定义,则展开为CHAR.
      

  3.   

    回复人:wenbaby(雯贝贝) ( 三级(初级)) 信誉:100  2007-01-11 08:52:50  得分:0

    TCHAR 是双编译支持的,如果定义了_UNICODE,则展开为WCHAR,如果没有定义,则展开为CHAR.是正解。另外,推荐使用unicode,提醒:要安装VC的UNICODE库(默认不安装),否则连接会出错。
      

  4.   

    TCHAR  是双编译支持的,如果定义了_UNICODE,则展开为WCHAR,如果没有定义,则展开为CHAR.
    ----------------------------------------这个我知道。
    但是实际上程序中并没有定义_UNICODE,所以应该展开为CHAR。那为什么还能正常显示,而不是乱码?
      

  5.   

    这个我知道。
    但是实际上程序中并没有定义_UNICODE,所以应该展开为CHAR。那为什么还能正常显示,而不是乱码?
    ___________
    你说为什么要显示乱码?显示不显示乱码,跟UNICODE没有关系.
      

  6.   

    支持中文字符集编码,比如ANSI并不是unicode编码。
      

  7.   

    因为你最终使用到的API也是ANSI的SetWindowTextA,而不是Unicode的SetWindowTextW