|
|
1
6
你可以使用
第一个表达式加0;第二个,8。 但是,您不能参数化这些表达式。它们是编译时常量,所以不能在运行时选择所需的方法。您需要提前表示所有可能的方法名称。
你们所有人
真正地
需要钩住的是
|
|
|
2
3
我认为德尔福不支持这一点。硬编码偏移量可能是唯一可行的方法,因为编译器不会像对象方法或独立函数那样,将接口方法计算为可以将值分配给函数指针的符号。 顺便说一句,你为什么要这么做? |
|
|
3
2
您的代码是错误的,因为接口引用不是指向接口方法表的指针,而是 指向接口方法表指针的指针 .这就是如何在二进制级别实现Delphi接口。很难说得更多,也很难指出代码中的错误,因为您没有给出可以编译的代码示例。使用下面的代码将接口引用正确地转换为方法指针,这个想法来源于 Barry Kelly's demonstration of creating a method pointer from a method reference :
如果你更喜欢MethNo的符号名,你最好自己把它们声明为偏移量常量 |
|
|
4
1
下面是获取所需方法指针的代码
|
|
zeus · 如何在调整数组大小后保持指向动态数组的指针有效? 1 年前 |
|
|
SignalOne · 德尔福(FMX)循环参考 1 年前 |
|
|
Sascha Ott · 如何从线程调用线程的方法? 2 年前 |
|
|
user1580348 · 问题:如何在上次最小化后还原应用程序? 2 年前 |
|
tua · Delphi的TLinkLabel坏了吗? 2 年前 |
|
|
Frank.Wu · delphi:RGB到HSL不正确 2 年前 |