返回介绍

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

发布于 2020-11-08 02:37:55 字数 1056 浏览 952 评论 0 收藏 0

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

ObjAddRef(Ptr)
ObjRelease(Ptr)

参数

Ptr

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

返回值

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

相关

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

示例

请参阅 ComObjConnect.

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)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文