天天看点

MFC中CString和string的相互转换

下面的代码应该同时适用于多字节字符集和Unicode字符集,上代码:

<code>//将CString转为std::string</code>

<code>string CMyUtil::CString2string(</code><code>const</code> <code>CString &amp;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 &amp;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

继续阅读