ObjAddRef() / ObjRelease() [AHK_L 53+]
增加或减少对象的引用计数.
ObjAddRef(Ptr)
ObjRelease(Ptr)
参数
- Ptr
非托管对象指针或 COM 接口指针.
返回值
这两个函数返回新的引用计数. 这个值应该 仅 用于调试的目的.
相关
引用计数
尽管后面的文章讨论了适用于 COM 的引用计数, 但其中也包含了通常也适用于 AutoHotkey 对象的重要概念和规则: IUnknown::AddRef, IUnknown::Release, 引用计数规则.
示例
请参阅 ComObjConnect().
#1
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)