我继承了一些糟糕的 MSXML 解析代码(遗憾的是我没有时间重写)。这段代码充满了 COM 接口/BSTR 泄漏,原作者要么误用了手动 COM 引用计数(这似乎总是以泪水告终),要么他们使用了 COM 智能指针但错误地使用了它们,从而发生了泄漏。
我现在已经修复了代码中的许多泄漏,但我仍然发现当我调用 CoUninitialize() 时 msxml3.dll 没有被卸载(如果所有接口都已经消失,它应该是这样)并且正在使用更多内存比我预期的这段代码运行后。
我现在已经达到了我可以手动发现的极限,我正在寻找一种可以识别这些泄漏的调试解决方案。我过去使用 umdh 发现常规泄漏效果很好,但这似乎对 COM 泄漏没有太大帮助。任何人都可以推荐一个好的方法吗?