我使用CoCreateInstance(),实例化了一个com对象,然后进行了一些操作,可以保证没有调用addref(),但是我使用release()了之后我发现内存没有变化。如此几次操作后发现内存增加的明显。
请问这是怎么回事呀!!!!

解决方案 »

  1.   

    请检查 COM的实现,COM中可能有内存没有释放的东东
      

  2.   

    COM 应该没问题吧
    因为不是我写的,是directshow类库的
      

  3.   

    将你的接口指针换为CComPtr试一下
      

  4.   

    addref()是IUnkown的一个成员,你所使用的COM的所有接口都有其实现。所以,你没有显式调用也不代表组件不会计数。对接口的每次查询都回增加计数的。
      

  5.   

    楼上说的对。
    COM组件里有addref的实现。我也遇到这个问题,我在自己的控件工程里没有显式调用addref和release,按说一切都是自动管理的吧?但最后关闭IE时发现没有调用控件类的析构函数,郁闷!