请教一个VC中有关GDI Image::FromFile 使用的一个问题,当Image加载一个不存在的文件时,在释放时delete 该Image指针时会出错。
附上相应代码,如下:
Image *mpPrevImage = NULL;
mpImage = Image::FromFile(L"");//加载一个不存在的文件,或直接文件为空时。此时加载失败,但mpImage指针并不为NULL。
当在程序退出,或析构时,我调用了:
if (mpImage != NULL)
{
delete mpImage;//此处会出现异常
mpImage = NULL;
}
调用delete时会出现异常。
请问高手,在如上情况下,该如何处理这个mpImage指针?
或着如何处理这个由Image::FromFile生成的一个空文件的mpImage指针。
DLG的成员变量:
Image *mpImage1 = NULL;
Image *mpImage2 = NULL;
Image *mpImage3 = NULL;
DLG初始化时:
mpImage1 = Image::FromFile(L"");
mpImage2 = Image::FromFile(L"C:\\123.png");//给一个存在的图片
mpImage3 = Image::FromFile(L"");//
在DLG的OnDestory()中做:
if (mpImage1 != NULL)
{
delete mpImage1;
mpImage1 = NULL;
}
if (mpImage2 != NULL)
{
delete mpImage2;
mpImage2 = NULL;
}
if (mpImage3 != NULL)
{
delete mpImage3;
mpImage3 = NULL;
}
然后你用DEBUG, F5运行,然后点击DLG的“X”关闭按钮,看下,会有异常的。
如果你用“Ctrl + F5”或直接运行,关闭是没有异常提示的。
请教一个VC中有关GDI Image::FromFile 使用的一个问题,当Image加载一个不存在的文件时产生的问题。
答案:2 悬赏:60 手机版
解决时间 2021-02-02 05:27
- 提问者网友:暮烟疏雨之际
- 2021-02-01 13:53
最佳答案
- 五星知识达人网友:过活
- 2021-02-01 14:25
跟你的环境有关系吧,我把你的代码运行了一下,没有问题。
全部回答
- 1楼网友:冷風如刀
- 2021-02-01 15:37
我。。知。。道
加。。我。。私。。聊
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯