java解析C或者C++生成的dll 文件一般有三种方法。
第一种方式:JNI 比较复制也比较原始,不多说了。(因为太复杂了,我也没用)
第二种方式:JNA 这个需要下载jna.jar。需要把dll文件放到与改类同级的文件夹下
然后代码如下:
// 定义接口CLibrary,继承自com.sun.jna.Library
public interface testdll extends Library {
String fileName = "UHFReader188.dll";
String filePath = testdll.class.getResource("").getPath().replaceFirst("/", "").replaceAll("%20", " ") + fileName;
testdll Instance = (testdll) Native.loadLibrary(filePath, testdll.class);
// CloseSpecComPort为UHFReader188.dll中的一个方法.
public int CloseSpecComPort(int l);
}
public static void main(String[] args) {
int cc = testdll.Instance.CloseSpecComPort(8090);
System.out.println(cc);
}
第三种方式:JNative(这个我也没用,也就不多介绍了)
注意:用JNA,还有JNative用的JDK都要是32位的解析的dll文件也是32位的(当时解析64位dll没不成功,说的有什么不对的望大神指点^-^)