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.

Siehe auch

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

Siehe ComObjConnect().

#1

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)