參考計數
COM 本身不會在認為不再使用物件時,自動嘗試從記憶體中移除物件。 相反地,對象程式設計人員必須移除未使用的物件。 程序設計人員會根據參考計數來判斷是否可以移除物件。
COM 會IUnknown
使用 AddRef 和 Release 方法來管理物件上介面的參考計數。 呼叫這些方法的一般規則如下:
每當用戶端收到介面指標時,
AddRef
都必須在介面上呼叫。每當用戶端使用介面指標完成時,它都必須呼叫
Release
。
在簡單的實作中,每個 AddRef
呼叫都會遞增,而每個 Release
呼叫都會遞減 物件內的計數器變數。 當計數傳回零時,介面不再有任何使用者,而且可以自由地從記憶體中移除本身。
您也可以實作參考計數,以便計算物件的每個參考(而不是個別介面)。 在此情況下,每個 AddRef
和 Release
都會呼叫 委派給 物件上的中央實作,並在 Release
對象參考計數達到零時釋放整個物件。
注意
CComObject
使用 new
運算符建構衍生物件時,參考計數為 0。 因此, AddRef
在成功建立 CComObject
衍生物件之後,必須呼叫 。