serving
serving
2017-07-19 03:17

java调用外部dll文件参数映射

  • struct
  • java
  • 结构
  • jna dll

//定义初始化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中创建了该结构体的类。
这种情况怎么解决?

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

0条回答