BSTR与string相互转化

BSTR实际上就是一个COM字符串,标准BSTR是一个有长度前缀和null结束符的OLECHAR数组。BSTR的前4字节是一个表示字符串长度的前缀。BSTR长度域的值是字符串的字节数,并且不包括0结束符


#include <comutil.h>

#include  <string>

#pragma comment(lib"comsuppw.lib")

//BSTR转string

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

string str = _com_util::ConvertBSTRToString(bstrText);  

SysFreeString(bstrText);  


扫描二维码关注公众号,回复: 4820462 查看本文章

//BSTR转char*

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

char* lpszText = _com_util::ConvertBSTRToString(bstrText);  

SysFreeString(bstrText); 

delete[] lpszText;

//char*BSTR

char* lpszText = "Test"; 

BSTR bstrText = _com_util::ConvertStringToBSTR(lpszText); 


//string转BSTR

string str = "Test"; 

BSTR bstrText = _com_util::ConvertStringToBSTR(str); 




猜你喜欢

转载自blog.csdn.net/aidansen/article/details/80194484