如何获取LoadLibrary()加载的DLL的内存使用情况?

时间:2015-10-27 02:29:00

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

我的Windows C / C ++应用程序加载大约30"插件" DLL,其中一个目前有一个我试图追踪的内存泄漏。 不幸的是,我不能一次只加载一个DLL,因为泄漏只发生在DLL交互时。

我尝试在LoadLibrary()返回的句柄上使用GetProcessMemoryInfo(),但是失败并出现(权限?)访问错误。 我试图找到一种获取句柄所需权限的方法,但是一直无法这样做,因为看起来这只能在进程上运行时使用(使用OpenProcess()等)?

我也试过在DLL本身内部使用GetProcessMemoryInfo(GetCurrentProcess()),但它们都报告了(不出所料我猜)父进程的内存信息。

所以我没有想法......有没有办法做到这一点?

提前致谢!

1 个答案:

答案 0 :(得分:0)

CRT函数可用于通过在与DLL的交互之间添加监视器来定位内存泄漏。

http://www.codeproject.com/Articles/10520/Detecting-memory-leaks-by-using-CRT-diagnostic-fun