下面的代碼應該同時適用於多字節字符集和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