如何禁用特定文件的可视C ++内存泄漏检查?

时间:2009-10-11 22:44:45

标签: c++ visual-c++ memory-leaks

我的一个项目是通过_CrtSetDbgFlag等利用微软提供的内存泄漏检查程序。这样工作正常,但我现在想要使用泄漏少量内存的第三方软件包。我没有特别需要修复泄漏,但输出很烦人,因为它会掩盖可能引入的“真正”泄漏。

如何禁用特定文件或项目的泄漏检查,但是为其他文件或项目保留?我的理解是它在调试模式下通过一些#define启用 - 我有点小提琴,但没有设法找到我可以#undef关闭它的东西。

1 个答案:

答案 0 :(得分:4)

在第一个_CRTDBG_CHECK_DEFAULT_DF指令之前,您可以使用_CrtSetDbgFlag()和宏0(等于new)来废除相关文件中的堆分配检查器。您不希望检查内存泄漏并在new指令后立即响应的文件。请参阅MSDN here

仅适用于 MFC项目的另一种方式: 我个人使用DEBUG_NEW宏来检测内存泄漏。在我的项目的每个文件中,我添加了宏。如果不将宏放在文件中,则不会在其中找到内存泄漏,只能在其他内容中找到。宏被解释为here