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

增加或减少对象的引用计数.

    ObjAddRef(Ptr)
    ObjRelease(Ptr)

## 参数

Ptr

  非托管对象指针或 COM 接口指针.

## 返回值

这两个函数返回新的引用计数. 这个值应该 仅 用于调试的目的.

## 相关

引用计数

尽管后面的文章讨论了适用于 COM 的引用计数, 但其中也包含了通常也适用于 AutoHotkey 对象的重要概念和规则: IUnknown::AddRef, IUnknown::Release, 引用计数规则.

## 示例

检索对象的指针, 并增加引用次数. 有关详情, 请参阅对象的指针.

    obj := Object()

    ; 下面的两行是等同的:
    ptr1 := Object(obj)
    ptr2 := ObjectToPointer(obj)

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

    ; 由 Object() 或 ObjectToPointer() 返回的指针必须进行手动释放,
    ; 这样才能最终释放对象并回收它占用的内存.
    ObjRelease(ptr2)
    ObjRelease(ptr1)

另一个例子, 请参阅 ComObjConnect().

dftg