下面的代码应该同时适用于多字节字符集和Unicode字符集,上代码:
//将CString转为std::string
string CMyUtil::CString2string(const CString &cstr)
{
CStringA stra((TCHAR *)(LPCTSTR)(cstr));
string str((char *)(LPCSTR)(stra));
return str;
}
//将std::string转为CString
CString CMyUtil::string2CString(const string &str)
{
CString cstr(str.c_str(), str.length());
return cstr;
}
值得说明一下的是,walker认为下面这个版本完全没必要,因为我们并不需要更改原始CString的内容。
//将CString转为std::string(walker认为没必要这样用)
string CMyUtil::CString2string(CString cstr)
{
CStringA stra(cstr.GetBuffer(0));
cstr.ReleaseBuffer();
string str = stra.GetBuffer(0);
stra.ReleaseBuffer();
return str;
}
*** walker ***
转载于:https://blog.51cto.com/walkerqt/1427805