下面的代码应该同时适用于多字节字符集和Unicode字符集,上代码:ide
//将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的内容。code
//将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 ***blog