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

来源:互联网 发布:java堆内存溢出 编辑:程序博客网 时间:2024/05/18 14:43
最近在尝试使用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版本没这个问题