void LoadFile(const CString fileName)
{
CImage img;
HRESULT hResult = img.Load(fileName);
if (FAILED(hResult))
{
ASSERT(0);
return algArray;
}
}
这个函数放在线程里,反复调用,发现出现大量线程退出线程
后来看CImage源码发现,如果发现析构CImage对象时,会有个static变量统计对象个数,当个数为0时,则析构GDI+对象
我也是醉了,这个MFC库的作者埋了这个大的坑。
修正办法:
void LoadFile(const CString fileName)
{
static CImage img;
img.Destroy();
HRESULT hResult = img.Load(fileName);
if (FAILED(hResult))
{
ASSERT(0);
return algArray;
}
}