为什么Pascal Script期望在外部函数声明附近再加一个分号
Why does Pascal Script expect another semicolon near my external-function declaration?
我用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
事件并为脚本调用UnloadDll
和DLLGetLastError
注册两个函数。
虽然在宿主程序没有提供处理外部函数的方法时引发错误是可以理解的,但是错误消息的具体措辞是无意义的。我鼓励您向项目提交一个问题,以使其得到改进。
相关文章:
- 一元*运算符的操作数是否期望一个 prvalue
- 什么 /可以/ 你从一个函数返回. 并期望它在到达时还活着?
- 期望在奇怪的地方有一个";"
- 为什么我可以将 std::map 的键传递给一个期望非常量的函数?
- 期望一个类型,得到一个模板
- 尝试获取用户输入和cout消息期望,当我输入一个有效名称时,它将所有这些命名
- Google Mock Expect_call将退休另一个期望
- 我一直得到一个期望;错误,我不确定为什么
- C++:当我输入一个字符串时,由于某种原因,程序期望更多,并导致整个代码出现问题
- 使用 gtest EXPECT_CALL 时竞争条件段错误,而另一个期望是执行相同的方法
- 如何初始化一个在C++中期望向量和变量的构造函数<int>?
- 使用谷歌测试期望一个给定范围内的值
- 我有 3 个错误:期望一个")",期望一个表达式,long 类型的参数与 U32 类型的参数不兼容
- GoogleMock:如何准确地期望一个带有特定参数的调用,并查看故障诊断
- 我可以复制一个谷歌模拟对象后设置期望
- 我可以在共享内存中放置一个 std::atomic 并<int64>期望原子操作吗?
- 期望头文件中有一个参数
- 如何为一个期望istream的方法定义原型
- 为什么Pascal Script期望在外部函数声明附近再加一个分号
- 如何启动一个std::线程,调用一个期望函数作为参数的函数