现工程中需对远程的COM进行调试,但不知道怎么能把BSTR或_bstr_t的输出到文本文件.
_variant_t *pvItem;
_stprintf(szBuf,_T("%d,%s,%d,%d,%s,%d),(long)pvItem[0],(_bstr_t)pvItem[1],(long)pvItem[2],(long)pvItem[3],(_bstr_t)pvItem[4],(double)pvItem[5]);WriteFile(hFile,(const char*)(_bstr_t)pvItem[1],strlen((const char*)bstrParameter),&cbWrite,NULL);最后打印出来的只有一个pvItem[0]和bstrParameter只有一个乱码.不知道是什么原因.

解决方案 »

  1.   

    BSTR to ascii
    BSTR pBSTR = ....;
    string str = (const char*)_bstr_t(pBSTR);
      

  2.   

    上面的用法我也知道,但就是出错.
    BSTR mModule;
    _bstr_t bstr = _T("xxxx is :")+(_bstr_t)m_Module;
    WriteFile(hFile,(const char*)bstr,.........)
    这个就可以写进去,但是上面的那个就会有乱码.
      

  3.   

    _bstr_t bstr = _T("xxxx is :")+(_bstr_t)m_Module;
    (_bstr_t)m_Module; ????????
    什么意思? 指针强制转化为对象 ?能对么
    你仔细看我是怎么写的