为什么Pascal Script期望在外部函数声明附近再加一个分号

Why does Pascal Script expect another semicolon near my external-function declaration?

本文关键字:一个 期望 Script Pascal 外部 声明 函数 为什么      更新时间:2023-10-16

我用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行
编译失败了。

互联网上的几个教程告诉我这正是要走的路,所以我在这里错过了什么?

如果声明了一个外部函数并且没有为OnExternalProc事件分配处理程序,Pascal Script将抛出"分号预期"错误。

你可以自己实现它,或者你可以使用uPSC_dll单元中的DllExternalProc。考虑在编译器组件上调用RegisterDll_Compiletime,它分配OnExternalProc事件并为脚本调用UnloadDllDLLGetLastError注册两个函数。

虽然在宿主程序没有提供处理外部函数的方法时引发错误是可以理解的,但是错误消息的具体措辞是无意义的。我鼓励您向项目提交一个问题,以使其得到改进。