今天在QT_VP中简单地添加了内存泄露检测语句:
_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
结果出来一大堆的内存泄露,着实吓了一跳,跟踪了一天,逐段派出,最后还是感觉没问题(还是比较自信代码质量的O(∩_∩)O哈哈~)。。。最后上网一查,在vs中,先是进行内存泄露报告,然后才卸载Qt的dll,释放申请的资源。所以才会出现这种情况。
标志内存检测报告:setdebugnew.h
注意,只有在cpp中添加setdebugnew.h,而且有new操作的那些函数或者类被调用,才会进行内存泄露跟踪
在cpp中添加该头文件以后,内存泄露报告格式:
然后在main函数中添加一个内存报告过滤器,将不是"*.cpp"格式的报告过滤掉,即可~
过滤器头文件reportinghook.h:
reportinghook.cpp:
测试程序:
博客地址:
http://www.schmidt-web-berlin.de/winfig/blog/?p=154‘
这里提供了一个QT中内存检测的代码。