如果考虑到函数重载,我怎么能确定PascalScript导入正确的函数(使用 AddFunction())?
对于exmaple我想导入system.Random。 在EngineCompile事件中,我添加了这个:
AddFunction( @System.Random, 'function Random: Extended;' );
但是在测试调用 random 的脚本时,我总是得到 NAN 。
我的测试脚本是
Program Script;
Var
a: Single;
Check: String;
Begin
a := Random;
Check := FloatToStr(a);
ShowMessage(Check);
End.
我强烈感觉PascalScript导入随机的其他版本。 你觉得怎么样?
答案 0 :(得分:1)
在每个可能的重载上放置一个断点(对于这种特殊情况,在 System.pas 中)。执行你的脚本。查看调试器停在哪一个。
答案 1 :(得分:0)
我就这样做了:
编译:
psc.AddDelphiFunction('function Random(const ARange: Integer): Integer');
psc.AddDelphiFunction('function Random2: Extended');
运行时:
type TRandom2 = function: Extended;
var Random2: TRandom2;
pse.RegisterDelphiFunction(@Random,'Random',cdRegister);
Random2:=Random;
pse.RegisterDelphiFunction(@Random2,'Random2',cdRegister);
我强制使用类型定义“随机:扩展”。