3

我用 C++ 编写了一个函数,制作了一个 DLL:

函数.h:

#ifndef FUNCTIONS_H
#define FUNCTIONS_H


int DLLsquare(int x);
#endif  /* FUNCTIONS_H */

函数.cpp:

#include "functions.h"
int DLLsquare(int x){
    return x*x;
}

我将其编译为 DLL。现在我想将其导入 Pascal 脚本:

program TestDLL;

function Square(x: Integer): Integer;
external 'DLLsquare@libTestDLL.dll';

begin
end. 

现在这不能编译。我得到:

(7:1):第 6 行需要分号 (';')
编译失败。

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

4

1 回答 1

2

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

您可以自己实现它,也可以DllExternalProcuPSC_dll单元中使用。考虑调用RegisterDll_Compiletime您的编译器组件,该组件分配OnExternalProc事件并注册两个函数供您的脚本调用,UnloadDll以及DLLGetLastError.

虽然当宿主程序没有提供处理外部函数的方法时引发错误是可以理解的,但错误消息的具体措辞是无稽之谈。我鼓励您向项目提交问题以对其进行改进。

于 2013-05-08T15:50:40.463 回答