【发布时间】:2011-01-27 13:57:37
【问题描述】:
我的程序使用了一个内部有大量内存泄漏的第三方动态链接库。我的程序和库都是 Visual C++ 本机代码。两者都动态链接到 Visual C++ 运行时。
我想强制库进入另一个堆,以便在库代码运行时通过 Visual C++ 运行时完成的所有分配都在该堆上完成。我可以打电话给HeapCreate() 和后来的HeapDestroy()。如果我以某种方式确保所有分配都在新堆中完成,我不再关心泄漏 - 当我销毁第二个堆时它们都会消失。
是否可以强制 Visual C++ 运行时在指定堆上进行所有分配?
【问题讨论】:
-
你是如何链接到图书馆的?
-
@GMan:程序动态链接到库。
-
DLL 如何链接到运行时?
-
@Joe Gauterin:程序和 DLL 都动态链接到 CRT。
-
它们是否都动态链接到相同版本的 CRT?第 3 方 .dll 是否使用与您构建应用程序相同版本的 MSVC 编译器构建?
标签: c++ visual-c++ memory-management