1. 程式人生 > >std::string和BSTR和CString之間的轉化

std::string和BSTR和CString之間的轉化

CString->std::string 舉例如下:

CString strMfc=“test“;
std::string strStl;

#ifdef _UNICODE

USES_CONVERSION
strStl=W2A(strMfc.LockBuffer());

strMfc.UnlockBuffer();

#else

strStl = strMfc.GetBuffer(0);

strMfc.ReleaseBuffer();

#endif

std::string->CString  舉例如下:

CString strMfc;

std::string strStl=“test“;

strMfc=strStl.c_str();

BSTR -> std::string 舉例如下

BSTR bstrTest = ::SysAllocString(L”Test”);

_bstr_t bstr_t(bstrTest);

std::strStl = bstr_t;

SysFreeString(bstrTest );

std::string -> BSTR 舉例如下

std::string name = "nisb";

 _bstr_t bstr_t(name.c_str());

BSTR ret_val = bstr_t.GetBSTR();