Visual Leak Detector不适用于DLL项目的检测

时间:2015-05-22 11:06:30

标签: c++ memory-leaks

我的解决方案中有很多项目。其中一些是dll项目。我已将#include "vld.h"添加到“stdafx.h”文件中,该文件将包含在所有文件中。我刚刚在我启动应用程序时执行的行上写了char* t = new char[100];。但是VLD不起作用。输出窗口只显示没有泄漏。但是,当我将#include "vld.h"放入一个静态项目时,它就有效了!我不知道为什么,以及如何处理这个?

1 个答案:

答案 0 :(得分:1)

你应该阅读这些指示:

https://vld.codeplex.com/wikipage?title=Using%20Visual%20Leak%20Detector&referringTitle=Documentation

要在项目中使用VLD,请按照以下简单步骤操作:

  1. 在程序中至少有一个C / C ++ (非标题)文件中,包含vld.h头文件。将include语句添加到哪个文件无关紧要。标题包含在与其他标题相关的顺序也无关紧要。唯一的例外是stdafx.h(或任何其他预编译头)。 预编译头(例如stdafx.h)必须始终是源文件中包含的第一个头,因此必须在任何预编译头之后包含vld.h。
  2. 如果您的程序包含一个或多个您还要检查内存泄漏的DLL,那么还要在每个DLL的至少一个源文件中包含vld.h,以包含在泄漏检测中。
  3. 构建程序的调试版本。