【发布时间】:2015-06-08 16:26:44
【问题描述】:
我有一个指向 COM 对象的指针(在 C++ 中)。有没有办法获取指针指向的对象的当前引用计数?
【问题讨论】:
-
我想不出你需要知道的情况。这就是引用计数对象的全部意义所在。
-
引用计数是被调用对象的职责(在
AddRef和Release内IUnknown)。AddRef返回实际计数(即使您警告仅将其用于测试目的),那么您唯一可以做的就是将IUnknown包装在您保留的自定义ObjectFactoryWithReferenceCounting中跟踪它们......乏味,充其量是(并且很难使其线程安全)。 -
@AdrianoRepetti:我不认为这是正确的。您需要通过任何接口计算
AddRef,包括您甚至不持有的接口(对象可能是共享的)。 -
@MSalters 我同意,它只有在你拥有它们和/或你可以改变它们的界面时才有效。
-
@paddy 想不出你需要知道的情况?严重地?调试怎么样?对象跟踪/使用情况如何?是的 - 可以有临时的上下文级别引用,但如果您编写的代码比 Hello World 更复杂并且您想要更多信息,它会很有用。非托管代码(即 C++)中的任何内容都可以通过不添加/释放引用或不使用智能对象轻松破坏,尤其是在可能忘记规则的缺乏经验的编码人员团队中工作时。这个问题是有效的。不要假设任何事情。