问题是这样的:
我要调用C++的dll里面有两个接口:
A接口:
int __stdcall sync_OpenTagQuery(HSYNCBASE hDB, const char *szNameMask, const char *szComentMask, int nNodeId, HSTMT *hStmt);
B接口:
int __stdcall sync_OpenHisQuery(HSYNCBASE hDB , int nTagId, S_TIME tmBeginTime,S_TIME tmEndTime, int nStep, HSTMT *hStmt);
相关数据结构:
typedef void* HSYNCBASE;
typedef void* HSTMT;
typedef struct {
unsigned char year; //年
unsigned char mon; //月
unsigned char day; //日
unsigned char hour; //时
unsigned char min; //分
unsigned char sec; //秒
} S_TIME; //秒级时间
Java中的实现:
a接口:
int sync_OpenTagQuery(Pointer hDB, String szNameMask, String szComentMask, int nNodeId, PointerByReference hStmt);
b接口:
int sync_OpenHisQuery(Pointer hDB, int nTagId, S_TIME tmBeginTime, S_TIME tmEndTime, int nStep, PointerByReference hStmt);
相关数据结构:
public class S_TIME extends Structure {
public byte year; //年
public byte mon; //月
public byte day; //日
public byte hour; //时
public byte min; //分
public byte sec; //秒
}
目前A接口对应的a接口已调通,但是B接口对应的b接口一调用就报以下错误 :
查了很多资料都是说参数类型不匹配的导致的,但是又具体找不到哪里有问题,希望有懂的朋友能指点一二,万分感谢