我在使用MEDIA ENCODER对象的时候,怎么无法找到它的顺序啊!可恨的MEMORY LEAK!:(
是否有一个已定的Release规则,在M$提供的COM对象中.

解决方案 »

  1.   

    使用智能指针啊
    你说无法找到顺序是什么意思?代码是自己写的,怎么无法找到顺序?自己没有AddRef,自然不用Release,你可以读下<Com原理与应用>的第2章
      

  2.   

    我尝试N多顺序去一一调用接口的Release,发现只有以一种顺序调用,他们的返回值才为0;但是还剩下三个接口,返回1,这3个接口有一个共同点,就是他们都是用get...的方法从IWMEncoder对象得到的,最后,我再调用IWMEncoder的Release,返回0.由这个过程,我不得不相信,至少这些COM接口的释放是要遵循一定的顺序的.
    是不是所有的Release都必须返回1,才说明我释放干净了呢?!
      

  3.   

    TO pcwl(pcwl),那你最后多放掉了吗?还是有遗漏?内存泄漏吗?
      

  4.   

    最好使用智能指针,如果要用AddRef()来添加引用的话,应该注意释放顺序,一般是先加的后释放,后加的先释放!