c++ - 我是否在发布或析构函数中删除 com 对象的实例数据?

标签 c++ com

Release顾名思义就是释放实例数据。这也是 C++ 中析构函数的任务。 现在我应该在哪里发布实例数据?先调用哪个?

最佳答案

COM 对象会跟踪 AddRefRelease 被调用的次数。
这称为 RefCount

当 RefCount 降为零时,意味着没有人再持有对该对象的引用,并且它会自行删除

您和您的代码从未真正确切地知道程序的哪些其他元素可能持有对 COM 对象的引用,因此您不应显式删除该对象。

相反,您应该在完成后调用 Release。当调用最后一个 Release 时,对象将删除自己的数据。

关于c++ - 我是否在发布或析构函数中删除 com 对象的实例数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22329018/

相关文章:

c++ - 具有可扩展 vector 扩展 (SVE) 的 ARM V-8

c# - 应用程序调用了为不同线程编码的接口(interface)

c# - 如何告诉 Range.NumberFormat 按原样放置数据?

c++ - 将 uint8* 转换为 uint32* 是如何工作的?

C++ : Opening a file in non exclusive mode

c++ - 完善转发模板功能

c# - 如何更新现有的共享文件夹属性?

Linux 上的 C++/汇编 IDE

c# - 添加属性后如何为 .NET 程序集保留 COM 二进制兼容性?

c# - DirectShow 将 sampleGrabber 转换为 ISampleGrabber