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

时间:2015-10-26 08:11:52

标签: header-files dllimport capl canoe

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

2 个答案:

答案 0 :(得分:4)

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

看一下具有这种包装的\CANoe\Demo_AddOn\Capldll directorty。它是一个将一些简单函数导出到CAPL的MSVC项目,如int f(int a, int b) {return a+b;}

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

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

答案 1 :(得分:2)

CAPL不是C.您不能包含.h文件。

最简单的方法是通过GPIB总线控制万用表。看一下CAPL GPIB库。