gpt4 book ai didi

c++ - 如何判断我是否正在泄漏 COM 对象?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:46:51 24 4
gpt4 key购买 nike

我正在编写一些代码(相对简单地)使用 COM,在某些对象上调用 AddRef() 并在稍后对它们调用 Release()。除了真正彻底地检查代码之外,还有什么方法可以检查我是否到处泄漏 COM 对象?

(我不能使用引用计数 IBlahBlahPtr,因为我需要将对象传递给一组不知道 COM 是什么的 API,因此不理解整个过程“引用计数指针”东西 - 它们像 token 一样传递指针。)

谢谢!

最佳答案

这与检查任何 C 或 C++ 代码中的泄漏没有什么不同。使用 <crtdbg.h>要检测泄漏,MSDN 库文章 is here .如果没有足够的 IUnknown::Release() 调用,您将获得类工厂的泄漏报告。

引用计数接口(interface)指针是一项硬 COM 要求,您不能只是耸耸肩。如果客户端代码没有这样做,那么在将指针传递给该代码之前,您必须自己处理它。知道指针何时不再使用当然是更棘手的问题。

关于c++ - 如何判断我是否正在泄漏 COM 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5725380/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com