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

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

ObjAddRef(Ptr)
ObjRelease(Ptr)

Parameter

Ptr

Ein unverwalteter Objektpointer oder COM-Interface-Pointer.

Rückgabewert

Diese Funktionen geben die neue Referenzanzahl zurück. Dieser Wert sollte nur für Debugging-Zwecke 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 generell auch für AutoHotkey-Objekte gelten: IUnknown::AddRef, IUnknown::Release, Referenzzählungsregeln .

Beispiele

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

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ückgeholt werden kann.
ObjRelease(ptr2)
ObjRelease(ptr1)

Ein weiteres Beispiel finden Sie unter ComObjConnect().