今天在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中内存检测的代码。

本文介绍了一种在QT_VP环境中使用Visual Studio进行内存泄露检测的方法。通过添加特定的预处理器指令和自定义的内存分配宏,可以有效追踪到程序中的内存泄露问题。此外,还提供了一个内存泄露报告过滤器的实现,帮助开发者更准确地定位问题。
2555

被折叠的 条评论
为什么被折叠?



