易语言获取子程序真实指针

易语言 2020-08-19 17:42:21

易语言获取子程序真实指针

易语言直接取到的指针不是真实子程序的指针。

易语言命令直接取到的指针并不一定是真实子程序的指针。使用本源码替代即可。

.子程序 取子程序指针, 整数型, , 此命令不保证兼容性 易5.11测试通过
.参数 子程序指针, 子程序指针
.局部变量 指针, 整数型
.局部变量 call, 字节型
.局部变量 读取位置, 整数型
.局部变量 实际指针, 整数型

指针 = _lstrcpyn_子程序指针 (子程序指针, 子程序指针, 0)
_RtlMoveMemory_读整数 (指针, 指针, 4)
读取位置 = 3
_RtlMoveMemory_读字节 (call, 指针 + 读取位置, 1)
.如果真 (call ≠ 232)
读取位置 = 20
.如果真结束
读取位置 = 读取位置 + 1
_RtlMoveMemory_读整数 (实际指针, 指针 + 读取位置, 4)
返回 (指针 + 读取位置 + 4 + 实际指针)