《MFC使用OpenCV造成内存泄漏问题》

版权声明:本文为博主原创文章,未经博主允许不得转载,博客地址:http://blog.csdn.net/mars_xiaolei。 https://blog.csdn.net/mars_xiaolei/article/details/86014836

问题描述

新建一个MFC应用程序,导入OpenCV,只要使用了OpenCV里面的东西(假设定义了一个Mat变量),当程序在运行时,不会有任何反应,但是当点击应用程序右上角的叉叉关闭程序时,那么问题就来了,输出窗口会出现一大堆内存泄漏问题,这是假内存泄漏,如下图所示:

Detected memory leaks!
Dumping objects ->
{680} normal block at 0x01147EB0, 56 bytes long.
 Data: <@               > 40 04 E9 0F 00 00 00 00 00 00 00 00 CD CD CD CD 
{679} normal block at 0x01147AE8, 908 bytes long.
 Data: <                > 00 00 00 00 00 00 00 00 00 00 00 00 80 02 00 00 
{356} normal block at 0x0114E170, 87 bytes long.
 Data: <            p   > CD CD CD CD CD CD CD CD CD CD CD CD 70 E1 14 01 
{355} normal block at 0x0114E0E0, 83 bytes long.
 Data: <                > CD CD CD CD CD CD CD CD CD CD CD CD E0 E0 14 01 
{353} normal block at 0x0114DD00, 72 bytes long.
 Data: <                > CD CD CD CD CD CD CD CD CD CD CD CD 00 DD 14 01 
{352} normal block at 0x0114DC90, 48 bytes long.
 Data: <GeneralizedHough> 47 65 6E 65 72 61 6C 69 7A 65 64 48 6F 75 67 68

 

解决方法

1、找到当前项目的解决方案资源管理器,选择项目名称,点击鼠标右键,选择最底下的属性选项。

2、点击属性选项之后,进入属性页面,依次找到配置属性、链接器、输入、延迟加载的DLL选项,然后去把OpenCV的bin文件下的所有dll的名称添加到延迟加载的DLL中,添加完之后,点击确定,然后再运行一下程序,基本上就没有内存泄漏出现了。

 

3、我把所有dll贴上来,用的是OpenCV2410的,有需要的自己改下

opencv_contrib2410.dll
opencv_core2410.dll
opencv_features2d2410.dll
opencv_flann2410.dll
opencv_gpu2410.dll
opencv_highgui2410.dll
opencv_imgproc2410.dll
opencv_legacy2410.dll
opencv_ml2410.dll
opencv_nonfree2410.dll
opencv_objdetect2410.dll
opencv_ocl2410.dll
opencv_photo2410.dll
opencv_stitching2410.dll
opencv_superres2410.dll
opencv_ts2410.dll
opencv_video2410.dll
opencv_videostab2410.dll
opencv_contrib2410d.dll
opencv_core2410d.dll
opencv_features2d2410d.dll
opencv_flann2410d.dll
opencv_gpu2410d.dll
opencv_highgui2410d.dll
opencv_imgproc2410d.dll
opencv_legacy2410d.dll
opencv_ml2410d.dll
opencv_nonfree2410d.dll
opencv_objdetect2410d.dll
opencv_ocl2410d.dll
opencv_photo2410d.dll
opencv_stitching2410d.dll
opencv_superres2410d.dll
opencv_ts2410d.dll
opencv_video2410d.dll
opencv_videostab2410d.dll

 

猜你喜欢

转载自blog.csdn.net/mars_xiaolei/article/details/86014836