我想获取从特定基类继承的类列表。
使用 RTTI,我已经可以检查了。但我也想检查这些类中的每一个是否抽象。
我在这里找到了一个解决方案:如何检查 Delphi 类是否被声明为抽象类?
但是,对于 line if GetVirtualMethod(c, i) = @_AbstractError then
,我收到@_AbstractError
一个未知标识符的错误。
所以我的问题是,如何获取AbstractError
过程的地址来检查我的类的任何虚拟方法是否指向该地址?当我查看System.pas
文件时,我可以清楚地看到_AbstractError
里面有。
或者,是否有另一种方法来检查给定方法是实现还是抽象?
我正在使用 Delphi XE6,并为方法GetVirtualMethodCount()
和GetVirtualMethod()
上面引用的解决方案安装了 JCL。