//定义初始化CAN的数据类型
typedef struct _VCI_INIT_CONFIG{
DWORD AccCode;
DWORD AccMask;
DWORD Reserved;
UCHAR Filter;
UCHAR Timing0;
UCHAR Timing1;
UCHAR Mode;
}VCI_INIT_CONFIG,*PVCI_INIT_CONFIG;
//头文件中定义的函数
EXTERNC DWORD __stdcall VCI_OpenDevice(DWORD DeviceType,DWORD DeviceInd,DWORD Reserved);
EXTERNC DWORD __stdcall VCI_CloseDevice(DWORD DeviceType,DWORD DeviceInd);
EXTERNC DWORD __stdcall VCI_InitCAN(DWORD DeviceType, DWORD DeviceInd, DWORD CANInd, PVCI_INIT_CONFIG pInitConfig);
项目是类似can逻辑分析仪,dll文件是周立功提供的。
java中使用jna的方法调用外部dll文件中的函数,能正确调用VCI_OpenDevice与VCI_CloseDevice两个函数。但是调用VCI_InitCAN这个函数时,报参数传入错误异常。针对这个形参有一个结构体,我在java中创建了该结构体的类。
这种情况怎么解决?