我正在尝试在运行时在 Delphi 中加载预先编译的 RemObjects Pascal 脚本。但是,当我尝试加载它时,Delphi 会出现“无法导入 VALUE_TEAMCODE”。 Value_TeamCode
是我已经使用 Pascal 脚本注册的 Delphi 应用程序中的一个函数。
这就是我正在做的事情。下面的粗略伪代码 - 实际代码被拆分为多个文件。SetCompiled
当脚本需要运行时,下面的调用也会在应用程序中发生得更晚。
关于代码的注意事项:
FPascalScript
是TPSScriptDebugger
...
//Register custom functions with Pascal Script
FuncsRegister;
//Load script
FPascalScript.Script.AddStrings(AContent);
//Compile script
FPascalScript.Compile;
//Get compiled script
FPascalScript.GetCompiled(sCompiledScript)
//Try and set script back in - ERROR Here 'Cannot Import VALUE_TEAMCODE'
FPascalScript.PascalScript.Debugger.SetCompiled(sCompiledScript);
...
也许我正在处理这个错误。我不确定是否甚至可以加载预编译的脚本。
我在 RemObjects WebSite Wiki 上进行了搜索,但 Pascal 脚本帮助已被删除。我还在 StackOverflow 上搜索了各种主题,但似乎没有一个与这个问题有关。
只是另一个注释。我已经有脚本在运行时编译和执行,没有任何问题。出于性能原因,我需要预编译。
任何帮助表示赞赏。
更新:
当前的解决方法是在我的系统中为每个脚本设置一个脚本引擎。这些引擎在预编译后保留在内存中。这消除了我原本拥有的每个脚本编译开销 30 毫秒。它还使用更多的内存,但不足以引起关注。
我仍然宁愿只使用一个脚本引擎。(因此需要加载预编译的脚本)