std::string和BSTR和CString之间的转化

来源:互联网 发布:知牛财经直播6302 编辑:程序博客网 时间:2024/05/16 07:18

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