【发布时间】:2012-04-26 17:43:21
【问题描述】:
我已阅读这些问题和答案
How to change the implementation (detour) of an externally declared function
但我不知道如何修补位于另一个单元中的类的私有方法。
检查此示例我想修补Bar 过程。
Unit ThidParty;
Interface
Type
TFoo =Class
private
procedure Bar;
end;
我认为关键是找到方法获取私有方法的地址。
那么,如何修补 delphi 类的私有方法?
【问题讨论】:
-
AFAIK 这是不可能的,因为私有方法/程序不是 VMT 的一部分,因此不能通过 RTTI 等使用。可能可以破解它,但这需要你拆卸另一个单元然后做一些指针算术加上一些汇编来到达那里......
-
另见Access a strict protected property of a Delphi class?。 David 提到的类助手。
标签: delphi delphi-xe2