下面的代码应该同时适用于多字节字符集和Unicode字符集,上代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
//将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的内容。
1
2
3
4
5
6
7
8
9
10
11
|
//将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 ***
本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1427805如需转载请自行联系原作者
RQSLT