永发信息网

请教一个VC中有关GDI Image::FromFile 使用的一个问题,当Image加载一个不存在的文件时产生的问题。

答案:2  悬赏:60  手机版
解决时间 2021-02-02 05:27
请教一个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”或直接运行,关闭是没有异常提示的。
最佳答案
跟你的环境有关系吧,我把你的代码运行了一下,没有问题。
全部回答
我。。知。。道 加。。我。。私。。聊
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
孝感市孝南区安全生产监督管理局地址在哪,我
夜神怎么打开后摄像头
包皮环切吻合器用缝针吗(步骤是什么)?
白熊狗是嘴长了好,还是短了好,怎么看纯不纯?
【①、25.6G某赤铁矿矿石中含铁元素35%,则含
在一个非套接字上尝试了一个操作,该怎么解决
孝感市安全生产监督管理局地址在什么地方,想
雅尚的意思是什么啊?知道的请说下!
为什么新农村都不让盖新房?国家给盖吗?请问
求kris仔锅吴亦凡的图片
请问这是盘江鱼吗?第一次杀鱼,怎么杀?
阳光幼儿园活动室地址在哪,我要去那里办事,
第二次工业革命开始于BA. 18世纪60年代B. 19
临汾职业幼儿师范学校校长叫什么?
海尔挂机的管温多大?10K,还是15K的?好象型
推荐资讯
劲隆三轮摩托车放机油在哪图片
【为什么糯米的粘性这么强】
魅蓝手机乍把开机键设置成挂机键
VHD引导系统
《中国有嘻哈》rapper成员都有谁
快捷支付可以通过手机支付宝开通吗
贵阳在哪买二手农用车?
英雄联盟那些胜点还有补分是什么意思
坐飞机可以带移动电源吗
废品回收站(麻丘农技站东南)怎么去啊,我要去
不知道到广州和汕头哪个城市工作好?
Colet卡伦特咖啡机怎么样
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?