用VectorFromBstr( BSTR  bstr,SAFEARRAY FAR* FAR*  ppsa)函数将BSTR转换为SafeArray类,再用该类的getString函数取出指定的字符串。 

解决方案 »

  1.   

    有两个函数MultiByteToWideChar()和WideCharToMultiByte()可以进行转换,具体用法可以看MSDN。同时,有两个函数AnsiToUnicode()和UnicodeToAnsi也可以转换字符串,这两个函数可以看Q138813这篇文章
      

  2.   

    Convert char * to BSTR
    String *resultWord;
    *resultWord = _com_util::ConvertStringToBSTR(m_Data[i].wordForLang2);
    Convert BSTR to char *
    char *pFileName = _com_util::ConvertBSTRToString(filename);
      

  3.   

    呵呵,自己编写一个函数来处理:
    void inline BR_TO_CSTRING( BSTR bst,CString& cst)
    {
    DWORD len=*((DWORD*)bst-1);
    for(UINT i=0;i<len;i+=2) 
     cst+=*(char*)((BYTE*)bst+i);
    }