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);
如上代码才具有线程安全性。