首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过CAPL访问.dll文件?

如何通过CAPL访问.dll文件?
EN

Stack Overflow用户
提问于 2017-04-04 12:02:16
回答 2查看 1.9K关注 0票数 0

我已经尝试了以下代码。

代码语言:javascript
复制
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‘。我怎么解决它呢?我需要包含一个头文件吗?

EN

回答 2

Stack Overflow用户

发布于 2017-04-14 15:47:06

为了使CAPL编译器和CAPL浏览器能够识别DLL,必须将其链接到CAPL程序。要执行此操作,可以在CANoe的选项对话框中输入DLL。在这种情况下,DLL将可用于您拥有的所有CAPL程序。另一方面,您可以使用#pragma library命令在CAPL程序的includes部分中输入DLL。在这种情况下,它将仅对此程序可用。

票数 0
EN

Stack Overflow用户

发布于 2019-11-21 18:39:01

这里似乎缺少CAPL DLL导出表中定义的三个元素(函数类别、文本、参数名称

已创建的函数可以在表函数(CAPL_DLL_INFO_LIST)的帮助下导出为CAPL代码。

表的第一行包含版本信息。此行必须按以下方式定义:

代码语言:javascript
复制
{CDLL_VERSION_NAME, (CAPL_FARCALL)CDLL_VERSION, "", "", CAPL_DLL_CDECL, 0xabcd, CDLL_EXPORT },

示例:使用导出表

代码语言:javascript
复制
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;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43197975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档