1. 程式人生 > >BSTR與string相互轉化

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);  


//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);