貌似有 wstring 类,但好像没有 wcstring 类。在mfc的一个对话框中,有一个edit控件绑定一个cstring   m_strEdit
我把一个wchar型的字符串拷贝给m_strEdit,结果edit里面显示‘????’一大串乱码。wchar类型字符串存的是unicode码的韩文 ,该如何处理啊,现在我又不能在工程里面定义unicode宏。(应为要改动的太多了)各位大虾给我想想办法啊急啊,要答辩了 。。

解决方案 »

  1.   

    需要在UNICODE与ANSI之间转换,两种字符串不能直接拷贝!!!
      

  2.   

    整个程序转为UNICODE吧。
    并没有一个WCString类
    CString 会根据你是否定义UNICODE和_UNICODE而相应的转化。
    具体方法为:打开Stdafx.h
    在所以的inlcude 之前加入#define UNICODE
    #define _UNICODE#ifdef UNICODE
    #pragma comment(linker,"/entry:\"wWinMainCRTStartup\"")
    #else
    #pragma comment(linker,"/entry:\"WinMainCRTStartup\"")
    #endif UNICODE
    以后如果想转回DBCS
    只要把上面两句define备注掉就可以了
      

  3.   

    To: DentistryDoctor(MVP(Offline while working)) 
    实际上我是这样用的,
    m_strEdit = CString(pwchar);  //pwchar 是指向一个WCHAR的字符串的
    但不知道:
    m_strEdit.Format(L"%s",pwchar);会怎样?
    To:  pjincz(无定乾坤) 
    如果我在某几个文件里定义UNICODE宏会怎么样,会不会解决这个问题
      

  4.   

    如果是VS2003可以使用CStringW
    wchar_t *p = L"Te中";
    CStringW s;
    s.Format(L"%s",p);
    MessageBoxW(0,s,s,MB_OK);最好还是转成Unicode