我用C ++编写了一个函数,制作了一个DLL:
functions.h:
#ifndef FUNCTIONS_H
#define FUNCTIONS_H
int DLLsquare(int x);
#endif /* FUNCTIONS_H */
functions.cpp:
#include "functions.h"
int DLLsquare(int x){
return x*x;
}
我把它编译成DLL。现在我想将它导入Pascal Script:
program TestDLL;
function Square(x: Integer): Integer;
external 'DLLsquare@libTestDLL.dll';
begin
end.
现在这不编译。我明白了:
(7:1):预期在第6行的分号(';') 编译失败。
互联网上的几个教程告诉我,这正是要走的路,所以我在这里缺少什么?
答案 0 :(得分:2)
如果声明一个外部函数并且没有为OnExternalProc
事件分配处理程序,Pascal脚本将抛出“分号预期”错误。
您可以自行实施,也可以使用 uPSC_dll 单元中的DllExternalProc
。考虑在您的编译器组件上调用RegisterDll_Compiletime
,该组件分配OnExternalProc
事件并为您的脚本注册两个函数,UnloadDll
和DLLGetLastError
。
虽然当主机程序没有提供处理外部函数的方法时引发错误是可以理解的,但错误消息的具体措辞是无意义的。我鼓励你file an issue与项目进行改进。