我已经尝试了以下代码。
int CAPLEXPORT far CAPLPASCAL capl_visa_init(double arg)
{
return visa_init(arg);
}
CAPL_DLL_INFO CAPL_DLL_INFO_LIST[] =
{
{"my_visa_init", (CAPL_FARCALL)capl_visa_init, 'D', 1, "F", "\000"},
....
{0,0}
}; 对于这段代码,我得到'Parse error‘。我怎么解决它呢?我需要包含一个头文件吗?
发布于 2017-04-14 15:47:06
为了使CAPL编译器和CAPL浏览器能够识别DLL,必须将其链接到CAPL程序。要执行此操作,可以在CANoe的选项对话框中输入DLL。在这种情况下,DLL将可用于您拥有的所有CAPL程序。另一方面,您可以使用#pragma library命令在CAPL程序的includes部分中输入DLL。在这种情况下,它将仅对此程序可用。
发布于 2019-11-21 18:39:01
这里似乎缺少CAPL DLL导出表中定义的三个元素(函数类别、文本、参数名称

已创建的函数可以在表函数(CAPL_DLL_INFO_LIST)的帮助下导出为CAPL代码。
表的第一行包含版本信息。此行必须按以下方式定义:
{CDLL_VERSION_NAME, (CAPL_FARCALL)CDLL_VERSION, "", "", CAPL_DLL_CDECL, 0xabcd, CDLL_EXPORT },示例:使用导出表
void CAPLEXPORT far CAPLPASCAL appPut(unsigned long x)
{
data = x;
}
CAPL_DLL_INFO4 table[] = {
{CDLL_VERSION_NAME, (CAPL_FARCALL)CDLL_VERSION, "", "", CAPL_DLL_CDECL, 0xabcd, CDLL_EXPORT },
{"dllPut", (CAPL_FARCALL)appPut, "CAPL_DLL","This function will save data from CAPL to DLL memory",'V', 1, "D", "\000", {"x"}},
{0, 0}
};
CAPLEXPORT CAPL_DLL_INFO4 far * caplDllTable4 = table;https://stackoverflow.com/questions/43197975
复制相似问题