Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Pascal脚本期望在我的外部函数声明附近有另一个分号? 我在C++中编写了一个函数,生成DLL:_C++_Dll_Pascalscript - Fatal编程技术网

为什么Pascal脚本期望在我的外部函数声明附近有另一个分号? 我在C++中编写了一个函数,生成DLL:

为什么Pascal脚本期望在我的外部函数声明附近有另一个分号? 我在C++中编写了一个函数,生成DLL:,c++,dll,pascalscript,C++,Dll,Pascalscript,职能.h: \ifndef函数 #定义函数 int DLLsquare(int x); #endif/*函数*/ 功能.cpp: #包括“functions.h” 整数DLLsquare(整数x){ 返回x*x; } 我把它编译成一个DLL。现在我想将其导入Pascal脚本: 程序TestDLL; 函数平方(x:整数):整数; 外部的DLLsquare@libTestDLL.dll'; 开始 结束。 现在,它无法编译。我得到: (7:1):第6行应使用分号(“;”) 编译失败 互联网上的一

职能.h:

\ifndef函数
#定义函数
int DLLsquare(int x);
#endif/*函数*/
功能.cpp:

#包括“functions.h”
整数DLLsquare(整数x){
返回x*x;
}
我把它编译成一个DLL。现在我想将其导入Pascal脚本:

程序TestDLL;
函数平方(x:整数):整数;
外部的DLLsquare@libTestDLL.dll';
开始
结束。
现在,它无法编译。我得到:

(7:1):第6行应使用分号(“;”)
编译失败


互联网上的一些教程告诉我,这正是正确的方法,那么我在这里遗漏了什么呢?

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

您可以自己实现它,也可以从uPSC\U dll单元使用
DllExternalProc
。考虑在编译器组件上调用<代码> RealStdLLCuleLimeTime/Cudio>,它分配了<代码> OnEngulalPoC 事件,并注册了用于调用脚本的两个函数,<代码> unLoDLLL> /COD>和<代码> DLLGetLastError < /代码> ./P>
虽然当宿主程序没有提供处理外部函数的方法时引发错误是可以理解的,但是错误消息的具体措辞是毫无意义的。我鼓励您对项目进行改进。

您是否在其他地方缺少分号然后检查了您使用的是哪个Pascal编译器?是的,我尝试在各种位置添加和删除分号,但根据我的经验,这种语法是正确的。除非我在这里遗漏了什么,我很清楚:)@RobKennedy这是PascalScript,这提供了足够的信息吗?是的。这是一个非常重要的区别。