怎样将BSTR的变量转换成char* 类型的变量;以及将BSTR的变量转换成LPCTSTR类型的变量。

解决方案 »

  1.   

    BSTR bstr;
    CString str(bstr);
    char* = str.GetBuffer(str.GetLength());
      

  2.   

    BSTR bstr;
    CString str(bstr);
    char* psz = str.GetBuffer(str.GetLength());
    LPCTSTR = psz;
      

  3.   

    #include <comdef.h>char Buf[100];
    BSTR a=L"111111";
    strcpy(Buf,_bstr_t(a));
      

  4.   

    关于在COM类型和C++类型之间才转换,请参考C++的包装类_bstr_t 和 _variant_t
    举例如下:#include <comdef.h>
    CString -> _bstr_t
    CString sTemp;
    _bstr_t bstr = (_bstr_t)(LPCTSTR)sTemp;char* -> _bstr_t
    char* ch;
    _bstr_t bstr = (_bstr_t)ch;_bstr_t -> char*
    _bstr_t bstr;
    char* ch = (char*)bstr;