如何在 CANoe/CAPL 中包含 .h 或 .dll 文件

2023-11-29

我想在CAPL中集成一个头文件.h或.dll(具体是Visa32.dll、visa.h或sicl.h)来控制万用表34461A。如何在 CANoe 中包含 .h 文件或 .dll 文件? 我创建了一个名为万用表的 ECU 模块。谢谢,


在 CAPL 中包含外部 DLL 是可能的,但您需要为要使用的所有函数创建一个包装器。

看一眼\CANoe\Demo_AddOn\Capldll具有此类包装器的目录。这是一个 MSVC 项目,将一些简单的函数导出到 CALL,例如int f(int a, int b) {return a+b;}.

您需要将库文件(Visa32.dll、visa.h)添加到该 Capldll 项目中,并为您想要从 CANoe 调用的所有函数定义包装器。例如,如果您有int visa_init(double arg)在 Visa32.dll 中,您将创建一个包装器:

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}
}; 

一旦您成功构建了包装器 DLL(如果您重用该示例,它将被称为 capldll.dll),您将需要将其导入到 CANoe 中,并且您将能够通过在导出表中定义的名称来调用该函数,例如my_visa_init(1.0);

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 CANoe/CAPL 中包含 .h 或 .dll 文件 的相关文章

随机推荐