- 注册时间
 - 2021-4-16
 
- 最后登录
 - 2024-3-2
 
- 在线时间
 - 1 小时
 
 
 
 
 
编程入门 
  
	- 龙马币
 - 38 
 
 
 
 
 | 
 
 
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);
 
  复制代码 
 
 |   
 
 
 
 |