BSTR与char*转换

BSTR转换成char*

 方法一,使用ConvertBSTRToString。例如: 

#include 
#pragma comment(lib, "comsupp.lib") 
int _tmain(int argc, _TCHAR* argv[]){ 
BSTR bstrText = ::SysAllocString(L"Test"); 
char* lpszText2 = _com_util::ConvertBSTRToString(bstrText); 
SysFreeString(bstrText); // 用完释放 
delete[] lpszText2; 
return 0; 


  方法二,使用_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); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值