问题描述
全部
我有一个加载多个DLL的应用程序。这些DLL之一有内存泄漏。
据我了解,查找内存泄漏的最佳工具是VLD ;-) 因此,我下载了最新版本并将其安装在默认位置。
现在文档说,我需要一次将vld.h文件包含在某个位置,并链接到VLD库,然后才运行该应用程序。
我的问题是-我应该将它包含在发生泄漏的DLL代码中,还是在主应用程序中?链接也一样...
谢谢。
解决方法
在每个DLL或某些特定DLL的每个源文件中包含vld.h
(如果使用预编译的头,则可以在头中包含vld.h
一次)。然后重建它们。
vld.h
重新定义了分配功能,因此,在编译源文件时,所有分配功能都将成为VLD中的特殊功能。这样,VLD可以保存有关分配和解除分配的信息。
您可以在主应用程序中使用VLD。但是在这种情况下,您将仅获得有关由主应用程序代码进行的分配的信息。