zoukankan      html  css  js  c++  java
  • COM技术内幕第四章笔记引用计数

    IUnknown的另外两个成员函数AddRef和Release是引用计数的代码实现。

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

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

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

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

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

    2、使用完接口后Release。

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

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

    “对于客户而言,每个接口分别被维护一个引用计数意味着,客户应该对它将要使用的那个指针调用AddRef,而不是其他什么指针。”

  • 相关阅读:
    Memo
    list查询记录时页面变成空白
    get the mail ids of the group members
    ui action(server side) change column value
    catalog item 时间按照指定形式输出
    select box 联动
    lookup select box和select box 联动
    函数二--递归
    函数一
    指针3
  • 原文地址:https://www.cnblogs.com/mumuliang/p/1873488.html
Copyright © 2011-2022 走看看