BSTR bstr t与CString char 转换

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                关于BSTR、_bstr_t详见 《_bstr_t与_variant_t》

CString转BSTR
 
    

BSTR bstr;

CString strSql;bstr = strSql.AllocSysString();

 
SysFreeString ( bstrText );   // 用完释放 

注意:用完之后必须使用SysFreeString
释放!!!

BSTR转CString
 
    

BSTR bstr = ::SysAllocString(L"Test"); 

CString strSql;strSql.Empty();strSql = (LPCSTR)bstr;

 
     

BSTR bstr = ::SysAllocString(L"Test"); 

CString str(bstr);

CString转 _bstr_t
 
    

_bstr_t bstr;

CString strSql;bstr = (_bstr_t)strSql;

_bstr_t转 CString
 
    

_bstr_t  bstr;

CString strSql;strSql = (LPCSTR)bstr;


BSTR转换成char*

方法一,使用ConvertBSTRToString
 
    

BSTR bstrText  =   :: SysAllocString ( L "Test" );  
char *  lpszText2  =  _com_util :: ConvertBSTRToString ( bstrText );  
SysFreeString ( bstrText );   // 用完释放 

delete []  lpszText2 ;  

方法二,使用_bstr_t的赋值运算符重载
 
    

_bstr_t  b  =  bstrText ;  
char *  lpszText2  =  b ;  

char*转换成BSTR

方法一,使用SysAllocString等API函数
 
    

BSTR bstrText  =   :: SysAllocString ( L "Test" );  
BSTR bstrText  =   :: SysAllocStringLen ( L "Test" , 4 );  
BSTR bstrText  =   :: SysAllocStringByteLen ( "Test" , 4 );  

方法二,使用COleVariant或_variant_t
 
    

//COleVariant strVar("This is a test"); 
_variant_t strVar("This is a test"); 
BSTR bstrText = strVar.bstrVal; 

方法三,使用_bstr_t,这是一种最简单的方法
 
   

BSTR bstrText = _bstr_t("This is a test");

方法四,使用CComBSTR
 
    

BSTR bstrText = CComBSTR("This is a test"); 

 
    

CComBSTR  bstr ( "This is a test" );  
BSTR bstrText  =  bstr . m_str ;

方法五,使用ConvertStringToBSTR
 
    

char *  lpszText  =   "Test" ;  
BSTR bstrText  =  _com_util :: ConvertStringToBSTR ( lpszText );  
           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值