|

楼主 |
发表于 2022-1-4 16:19:09
|
显示全部楼层
RE: 关于脚本语言PascalScript学习与讨论
本帖最后由 kwer 于 2022-1-4 16:25 编辑
《关于PascalScript Event 程序在X64CPU上面不能触发问题的解决方案》
因为所有的事件程序参数传递是通过 uPSRuntime单元的MyAllMethodsHandler程序完成
大量使用了汇编魔法,作者只完成了x86部分,$ifdef CPUX64 部分是空着的(未完成)。
网上也没有解决方案(懂汇编人的太少),但还是可以绕开MyAllMethodsHandler来完成。
// Button.OnClick := @BtnClick; // 原来是这样做
LinkEventMethod(Button, 'OnClick', 'BtnClick'); // 改为Host程序处理
---- Host Processing ----
procedure LinkEventMethod(Instance, AEvent, ScriptMethod);
begin
ProcNo := Executor.GetProc(ScriptMethod); ...
Button.OnClick := @InvokeOnClick; // 脚本程序触发InvokeOnClick
end
procedure InvokeOnClick(Sender: TObject)
begin ...
Executor.RunProc(PramList, ProcNo);
end.
|
|