Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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
Header files 如何在CANoe/CAPL中包含.h或.dll文件_Header Files_Dllimport_Capl_Canoe - Fatal编程技术网

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

Header files 如何在CANoe/CAPL中包含.h或.dll文件,header-files,dllimport,capl,canoe,Header Files,Dllimport,Capl,Canoe,我想在CAPL(具体为Visa32.dll、visa.h或sicl.h)中集成一个header.h或.dll文件,以控制万用表34461A。如何在CANoe中包含.h文件或.dll文件? 我创建了一个叫做万用表的ECU模块。谢谢,CAPL不是C。您不能包含.h文件 最简单的方法是通过GPIB总线控制万用表。看看CAPL GPIB库。在CAPL中包含外部DLL是可能的,但是您需要为所有要使用的函数创建一个包装器 请看一下directorty,它有这样一个包装器。这是一个MSVC项目,将一些简单的函

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

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


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

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

请看一下directorty,它有这样一个包装器。这是一个MSVC项目,将一些简单的函数导出到CAPL,比如
intf(inta,intb){returna+b;}

您需要将您的库文件(Visa32.dll,visa.h)添加到此Capldll项目,并为您希望从CANoe调用的所有函数定义包装器。例如,如果在Visa32.dll中有
int-visa\u-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)

已解决,谢谢Sergej,这是最好的选择。我控制着万用表。我和Vector CANoe的人谈过,他们说他们不能帮助我加入.dll库。我唯一要做的就是用嗅探器捕捉所有命令。谢谢again@eloy0107,如果这解决了您的问题,这应该是公认的答案。这是可能的,但我们已经尝试了GPIB函数。谢谢你,德米特里。