您的位置:首页 > 其它

COM技术内幕第四章笔记-引用计数

2010-07-27 13:17 295 查看
IUnknown的另外两个成员函数AddRef和Release是引用计数的代码实现。

COM组件都会维护一个表示引用计数的数值。

客户取得一个接口时,计数值+1——AddRef,使用完后-1——Release。

为0时,组件可将自己从内存中删除。

关于此有三条简单的规则:

1、在返回之前调用AddRef。对与返回接口指针的函数,在返回之前,用相应的指针调用AddRef。QueryInterface、CreateInstance。这样一来,客户从实现处得到接口后就无需AddRef。

2、使用完接口后Release。

3、赋值后AddRef。例如在将一个接口指针赋值给另外一个接口指针时,后者应调用AddRef。意味着:在给某个接口指定别名时都应调用AddRef。

如果是别名的话,也就没有后者前者的区别了吧?!?!。

“对于客户而言,每个接口分别被维护一个引用计数意味着,客户应该对它将要使用的那个指针调用AddRef,而不是其他什么指针。”
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: