下面的代码应该同时适用于多字节字符集和Unicode字符集,上代码:
<code>//将CString转为std::string</code>
<code>string CMyUtil::CString2string(</code><code>const</code> <code>CString &cstr)</code>
<code>{</code>
<code> </code><code>CStringA stra((</code><code>TCHAR</code> <code>*)(</code><code>LPCTSTR</code><code>)(cstr));</code>
<code> </code><code>string str((</code><code>char</code> <code>*)(</code><code>LPCSTR</code><code>)(stra));</code>
<code> </code><code>return</code> <code>str;</code>
<code>}</code>
<code>//将std::string转为CString</code>
<code>CString CMyUtil::string2CString(</code><code>const</code> <code>string &str)</code>
<code> </code><code>CString cstr(str.c_str(), str.length());</code>
<code> </code><code>return</code> <code>cstr;</code>
<code>//将CString转为std::string(walker认为没必要这样用)</code>
<code>string CMyUtil::CString2string(CString cstr)</code>
<code> </code><code>CStringA stra(cstr.GetBuffer(0));</code>
<code> </code><code>cstr.ReleaseBuffer();</code>
<code> </code><code>string str = stra.GetBuffer(0);</code>
<code> </code><code>stra.ReleaseBuffer();</code>
本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1427805如需转载请自行联系原作者
RQSLT