char, BSTR, _bstr_t, CComBSTR之间的互相转换

char:
    To BSTR: 
        _com_util::ConvertStringToBSTR
        CString的AllocSystemString
    To _bstr_t: 
        _bstr_t的构造函数
    To CComBSTR:
        CComBSTR的构造函数
        
BSTR:
    To char:
        _com_util::ConvertBSTRToString
    To _bstr_t: 
        _bstr_t的构造函数
    To CComBSTR:
        CComBSTR的构造函数
        
_bstr_t:
    To char:
        LPCTSTR操作符
    To BSTR:
        BSTR操作符
    To CComBSTR:
        先使用BSTR操作符转换成BSTR, 再使用CComBSTR的构造函数
        
CComBSTR:
    To char:
        LPCTSTR操作符
    To BSTR:
        BSTR操作符
    To _bstr_t: 

        先使用BSTR操作符或直接取其m_str成员, 作为_bstr_t的构造函数

CString:

#include "atlbase.h"

BSTR test1=::SysAllocString(L"test ok!!!");
CComBSTR test;
test.Attach(test1);  //="adsfasdfsdf";
USES_CONVERSION;
CString str;
str=W2A(test);
MessageBox(str, MB_OK);

        
由于CComBSTR中的数据成员BSTR m_str公开, 而且重载了&操作符, 适合作为以BSTR作为传出参数的函数, 但要注意内存泄漏问题, 不要将已赋值的CComBSTR作为传出参数
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章