gpt4 book ai didi

c++ - 调试 COM 引用计数器

转载 作者:太空宇宙 更新时间:2023-11-04 14:20:05 27 4
gpt4 key购买 nike

在一个项目中,我正在与 .EXE 服务器中的一个对象交谈(该对象为我执行昂贵的查询,应该被缓存),我似乎弄错了我的引用计数,这使得服务器进程空闲它仍然引用一个对象,使主机进程以奇怪和有趣的方式失败,包括丢失数据并向供应商发送错误报告。

如果以某种方式使用其引用计数已降至零的代理对象,我是否可以要求 COM 提出一些可在调试器中检测到的条件?

最佳答案

这不太可能使用原始接口(interface) - 引用计数由 COM 服务器维护,它的实现方式取决于服务器 - 实现在服务器代码中,所以除非你有源代码并且可以调试服务器,您无法访问它。

但是,您的问题很可能是由手动调用 AddRef 和 Release 引起的。如果是这种情况,您可以使用 RAII/智能指针解决方案。 ATL 提供了一个,但如果出于某种原因您不能使用它,创建您自己的也很容易。然后,您不仅可以创建或使用提供的调试工具来跟踪引用计数,而且一开始就不太可能出错。

关于c++ - 调试 COM 引用计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8308793/

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