一 JNA的使用
1.首相将.dll文件通过工具(Dependency Walkser)查看.dll中包含的函数接口,本文查看的dll中的函数接口有以下这些(环境:64位dll,64为jdk)
2.然后再利用java中的JNA对dll的接口进行解析。代码很简单,只需要写一个接口继承com.sun.jna.win32.StdCallLibrary或者继承、
public interface BCMLibrary extends com.sun.jna.win32.StdCallLibrary {
// 设置参数
int BANKCOMM_SetParam(int iParamIndex, String ucParamBuffer);
// 签到
int BANKCOMM_Login(Pointer out, String deviceID);
// 扫码支付
int BANKCOMM_Purchase(int amount, String scancode, String detail, Pointer out, String deviceID);
// 订单状态查询
int BANKCOMM_Query(String sysOrderNo, Pointer out, String deviceId);
}
这里我并没有把所有的接口都写上,这里的接口名称都是和.dll函数名一致,参数类型也要和.dll函数一致
3.调用接口
BCMLibrary l= (BCMLibrary) Native.loadLibrary("C:/sand/BankComm/DLL_BANKCOMM_INTERFACE.dll",BCMLibrary.class);
P