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作爲傳出參數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章