MFC中CString和string的相互轉換

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

相關文章
相關標籤/搜索