怎样将CString字符串变量转换成宽字符(L"mystr")?

解决方案 »

  1.   

    CString s("abcdef");
    _bstr_t bstr((LPTSTR)s);
    wchar_t * wstr = (wchar_t*)bstr;
      

  2.   

    CString str_mb="hello";
    int chNeeded=MultiByteToWideChar(CP_ACP,0,str_mb,str_mb.GetLength()+1,0,0);
    //计算需要的缓冲区长度。str_mb.GetLength()+1包含结束标记'0'.
    wchar_t* str_wc=new wchar_t[chNeeded];
    MultiByteToWideChar(CP_ACP,0,str_mb,str_mb.GetLength()+1,str_wc,chNeeded);
    //执行转换。
      

  3.   

    CString str("mystr");
    BSTR bstr;bstr = str.AllocSysString();//用完后需要释放
    SysFreeString(bstr);
      

  4.   

    刚才测试了一下,别忘了加上:
    #include <comdef.h>
    CString str ;
    _bstr_t bstr(str);
    wchar_t * wstr = (wchar_t*)bstr;
      

  5.   

    hdsunwind(****IUnknown****) 
    简单实用。