CString在線程處理中,稍有處理不當,極易引起內存泄漏。
讓我們來看一個例子:
在線程函數中使用如下代碼
CString strstate;
strstate.Format("正在解密,請稍后... (共 %d 張地圖)",p->m_countmap);
可以看到非常簡單,在debug下,很容易看到如下的內存泄漏。

怎么回事?
先把修改好的代碼放上來
CWin32Heap stringHeap( HEAP_NO_SERIALIZE, 0, 0 );
CAtlStringMgr stringMgr( &stringHeap );
CString strstate(&stringMgr );
strstate.Format("正在解密,請稍后... (共 %d 張地圖)",p->m_countmap);
如上代碼才具有線程安全性。