你指的是什么引用计数,是dll的吗?dll加载的时候如果已经被加载了那做的操作仅仅是引用计数加1,释放的时候引用计数减1,引用计数为0才会真正的释放资源。这个引用计数对用户来说是透明的。

解决方案 »

  1.   

    每一个com接口内部都有一个引用计数,外面CoCreateInstance一次或QueryInterface一次等等,就会将引用计划加一,一个对象释放了引用计数就减一。不需要你创建引用计数。
      

  2.   

    COM类里有一个内嵌类class Data_t ,在该 Data_t 类中有一个成员m_RefCount,这个就是引用计数
      

  3.   

    在com组件内部维护,queryinterface加一,release减一
      

  4.   

    补充一下 :
    我的dll加入了mfc支持,看上去是这样:class CMyApp : public CWinApp
    {
    public:// 重写
    virtual BOOL InitInstance();
    virtual int ExitInstance(); DECLARE_MESSAGE_MAP()
    public:};
    其它程序调用dll时,会先到 InitInstance 这个函数。我的意思是当程序调用这个dll 时,能在 InitInstance 这个函数中获取引用计数。
    怎么搞?
      

  5.   

    所有的COM类都继承IUnknown接口,
    ATL框架自动实现了IUnknown接口的三个虚函数:
    AddRef(),Release(),QueryInterface().
    引用计数就在基借口类IUnknown的实现类中。