作者:钟罄石 | 来源:互联网 | 2023-09-01 10:33
请高手解答:GDI+BitMapnew成功,GetLastStatus返回无效。delete指针崩溃,求解答代码如下:Bitmap*pBitmap::newBitma
请高手解答:GDI+ BitMap new成功,GetLastStatus返回无效。delete指针崩溃,求解答
代码如下:
Bitmap *pBitmap = ::new Bitmap(wszOutPath);
if (Ok == pBitmap->GetLastStatus())
{
m_vecFacepBitmap.push_back(pBitmap);
}
else
{
delete pBitmap;
pBitmap = NULL;
}
现在的情况是 如果wszOutPath指定的路径不存在,new成功pBitmap的值不为NULL。但是GetLastStatus()!=Ok;
请问高手们,这时候应该怎么处理pBitmap?
现在我这种情况下,如果delete pBitmap;则会崩溃。
如果不delete则会有内存泄露。
求解!!!
17 个解决方案
那可以先判断一下wszOutPath指定的路径是否存在呀,不存在就返回吧
既然返回InvalidParameter的话,那么应该就没有new成功,那么你的pBitmap应该是随机的值吧,
你怎么确定如果没有delete则会有内存泄露?
LZ最好先用NULL初始化pBitmap,然后再尝试……
这样也没有错误,即使AfxMessageBox显示InvalidParameter,但是回来调用delete pBitmap;没有错误的