天天看點

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

繼續閱讀