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;
}
}