当前位置: 代码迷 >> Brew >> 相干引用计数addref ?
  详细解决方案

相干引用计数addref ?

热度:1094   发布时间:2016-04-25 06:59:14.0
有关引用计数addref ???
请问:到底是哪个函数调用这个引用计数函数的,它是什么时候执行加1的,看得有点乱啊!
------解决思路----------------------
一般在拷贝指针的时候都会用到,比如要使用一个不为空的图片指针的时候,需要增加它的引用计数,避免该指针空间被释放,造成死机。ADDREFIF或者IBASE_COPY_IPTR,一般都是用这两种。
比如,pINewImage = pIImage;
     ADDREFIF(pINewImage);
------解决思路----------------------
1. 在返回之前调用 AddRef。对于那些建好些返回接口指针的函数,在返回之前应该相应的指针调用 AddRef。这些函数包括QueryInterface 及 CreateInstance。这样当客户从这种 函数得到一个接口后。它将无需调用 AddRef.
 
2.使用完接口之后调用 Release。在使用某个接口之后应该调用些接口的Release函数。
 
3.在赋值之后调用AddRef. 在将一个接口指针赋给另一个接口指针时,应调用 AddRef。换句话说,在建立接口的别外一个引用之后应增加相应组件的引用计数。
------解决思路----------------------
读读com本质论,会有很大的帮助的
------解决思路----------------------
一般queryinterface()函数会调用,指针拷贝的时候也会调用吧,其他的就不知道了。