在VLD上进行Carification

问题描述

全部

我有一个加载多个DLL的应用程序。这些DLL之一有内存泄漏。

据我了解,查找内存泄漏的最佳工具是VLD ;-) 因此,我下载了最新版本并将其安装在认位置。

现在文档说,我需要一次将vld.h文件包含在某个位置,并链接到VLD库,然后才运行该应用程序。

我的问题是-我应该将它包含在发生泄漏的DLL代码中,还是在主应用程序中?链接也一样...

谢谢。

解决方法

在每个DLL或某些特定DLL的每个源文件中包含vld.h(如果使用预编译的头,则可以在头中包含vld.h一次)。然后重建它们。

vld.h重新定义了分配功能,因此,在编译源文件时,所有分配功能都将成为VLD中的特殊功能。这样,VLD可以保存有关分配和解除分配的信息。

您可以在主应用程序中使用VLD。但是在这种情况下,您将仅获得有关由主应用程序代码进行的分配的信息。