BSTR與string相互轉化
阿新 • • 發佈:2019-01-07
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);