ObjAddRef() / ObjRelease() [AHK_L 53+]

Erhöht oder verringert die Referenzanzahl eines Objekts um 1.

ObjAddRef(Ptr)
ObjRelease(Ptr)

Parameter

Ptr

Ein nicht verwalteter Objekt-Pointer oder COM-Interface-Pointer.

Rückgabewert

Diese Funktionen geben die neue Referenzanzahl zurück. Dieser Wert sollte nur zum Debuggen verwendet werden.

Referenzzählung

Obwohl die folgenden Artikel die Referenzzählung in Bezug auf COM beschreiben, werden einige wichtige Konzepte und Regeln erläutert, die in der Regel auch für AutoHotkey-Objekte gelten: IUnknown::AddRef, IUnknown::Release, Regeln bei der Referenzzählung.

Beispiele

Ruft den Pointer eines Objekts ab und erhöht die Referenzanzahl. Einzelheiten finden Sie unter Objekt-Pointer.

obj := Object()

; Die folgenden zwei Zeilen sind äquivalent:
ptr1 := Object(obj)
ptr2 := ObjectToPointer(obj)

ObjectToPointer(obj) {
    if !IsObject(obj)
        return ""
    ptr := &obj
    ObjAddRef(ptr)
    return ptr
}

; Jeder via Object() oder ObjectToPointer() abgerufene Pointer muss manuell
; freigegeben werden, damit das Objekt letztlich frei ist und der
; beanspruchte Speicher zurückgewonnen werden kann.
ObjRelease(ptr2)
ObjRelease(ptr1)

Ein weiteres Beispiel finden Sie unter ComObjConnect().