您的位置:首页 > 其它

CxImage在使用中delete出错的解决方案

2013-09-27 21:47 239 查看
最近在尝试使用CxImage,但是按照网上提供的简单代码尝试,在delete动态申请的对象时老是说堆栈出错,百思不得其解。最后经过多方面尝试,总算找到了三个替代方案,姑且算是解决了这个问题。
我的CxImage是在网上下载的6.00版,使用vc6编译,在win7+vs2010上实验,使用的是debug版,代码如下:

CxImage *pxImage=new CxImage;
pxImage->Load("Penguins.jpg",CXIMAGE_FORMAT_JPG);
if (pxImage->IsValid()==false)
{
cout<<"No image"<<endl;
system("pause");
return 0;
}
pxImage->Save("Penguins.bmp",CXIMAGE_FORMAT_BMP);
delete pxImage;


图像也保存成功了,说明前面都运行的很好,只有在delete的时候会说堆栈出错。虽然问题没有找到,解决方案倒是有三个:
1、不用动态分配内存,直接定义对象。(废话)
2、不用局部delete,使用全局delete。(::delete)
3、在使用CxImage的时候,不用debug版,用release版就没问题。
经过我的实验,以上三个在我的代码上都不会出错,不过深层次的问题,我也搞不懂了。
顺便一提,貌似7.01版本没这个问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: