gpt4 book ai didi

delphi - 将方法指针转换为整数,然后调用它

转载 作者:行者123 更新时间:2023-12-03 15:04:03 25 4
gpt4 key购买 nike

我想知道以下是否可能,如果可以,如何实现?请提供代码示例。

  • 如何将指向对象方法的指针存储为整数值
  • 如何将该整数值转换回“方法指针”并调用它

我想要做的是将“方法指针”存储在 TComponent 派生对象的整数 Tag 值中,然后稍后调用存储的方法。您可以假设所有满足的方法都具有相同的定义。

谢谢!

最佳答案

不,这是不可能的。对象的方法相当于TMethod:

TMethod = record
Code, Data: Pointer;
end;

Code 字段是方法的地址,Data 字段是传递到每个对象方法中的隐藏 Self 参数。该记录的大小与 Int64 相同,因此如果将其转换为普通整数,您将丢失一半。

您可以使用 GetMem 在堆上分配 TMethod 记录,然后将其地址存储在 Tag 属性中,只要您记得在使用完它后释放它即可。

关于delphi - 将方法指针转换为整数,然后调用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4486635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com