Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
COM selbst versucht nicht automatisch, ein Objekt aus dem Arbeitsspeicher zu entfernen, wenn das Objekt nicht mehr verwendet wird. Stattdessen muss der Objektprogrammierer das nicht verwendete Objekt entfernen. Der Programmierer bestimmt, ob ein Objekt basierend auf einer Verweisanzahl entfernt werden kann.
COM verwendet die IUnknown Methoden AddRef und Release, um die Referenzanzahl von Schnittstellen für ein Objekt zu verwalten. Die allgemeinen Regeln zum Aufrufen dieser Methoden sind:
Wenn ein Client einen Schnittstellenzeiger empfängt,
AddRefmuss er auf der Schnittstelle aufgerufen werden.Wenn der Client den Schnittstellenzeiger verwendet hat, muss er aufgerufen werden
Release.
In einer einfachen Implementierung erhöht sich jeder AddRef Aufruf und jeder Release Aufruf dekrementiert eine Zählervariable innerhalb des Objekts. Wenn die Anzahl auf Null zurückgibt, verfügt die Schnittstelle nicht mehr über Benutzer und kann sich selbst aus dem Arbeitsspeicher entfernen.
Die Verweiszählung kann auch implementiert werden, sodass jeder Verweis auf das Objekt (nicht auf eine einzelne Schnittstelle) gezählt wird. In diesem Fall werden alle AddRefRelease Stellvertretungen für eine zentrale Implementierung des Objekts aufgerufen und Release das gesamte Objekt freigegeben, wenn die Referenzanzahl null erreicht.
Hinweis
Wenn ein abgeleitetes CComObjectObjekt mithilfe des new Operators erstellt wird, ist die Referenzanzahl 0. Daher muss nach dem erfolgreichen Erstellen des AddRefabgeleiteten Objekts ein Aufruf CComObject ausgeführt werden.
Siehe auch
Einführung in COM
Verwalten von Objektlebensdauern über Referenzzählung