我的Windows C / C ++应用程序加载大约30"插件" DLL,其中一个目前有一个我试图追踪的内存泄漏。 不幸的是,我不能一次只加载一个DLL,因为泄漏只发生在DLL交互时。
我尝试在LoadLibrary()返回的句柄上使用GetProcessMemoryInfo(),但是失败并出现(权限?)访问错误。 我试图找到一种获取句柄所需权限的方法,但是一直无法这样做,因为看起来这只能在进程上运行时使用(使用OpenProcess()等)?
我也试过在DLL本身内部使用GetProcessMemoryInfo(GetCurrentProcess()),但它们都报告了(不出所料我猜)父进程的内存信息。
所以我没有想法......有没有办法做到这一点?
提前致谢!
答案 0 :(得分:0)
CRT函数可用于通过在与DLL的交互之间添加监视器来定位内存泄漏。
http://www.codeproject.com/Articles/10520/Detecting-memory-leaks-by-using-CRT-diagnostic-fun