1.实例
package com.dll;
/**
* @Description: 需要引入的jna依赖
* <dependency>
* <groupId>net.java.dev.jna</groupId>
* <artifactId>jna</artifactId>
* <version>3.4.0</version>
*</dependency>
*/
import com.sun.jna.Library;
import com.sun.jna.Native;
/**
* @ClassName DllTest
* @Date 2021/11/29 14:42
* @Author shich
* @Description TestDll.dll调用实例分享
*/
public class DllTest {
public interface Dll extends Library{
Dll INSTANCE = (Dll) Native.loadLibrary("D:\\project\\DLL\\src\\main\\resources\\TestDll",Dll.class);
/**
* @return
*/
int add(int a, int b);
}
public static void main(String[] args) {
long i = Dll.INSTANCE.add(2,2);
System.out.println(i);
}
}
2.dll报异常
3.常见异常
a.java.lang.UnsatisfiedLinkError: Unable to load library
注意检查dll文件路径访问是否存在问题,没有找到动态库文件。
b.java.lang.UnsatisfiedLinkError: 找不到指定的模块。
注意检查库文件的依赖项是否加载全,通常依赖库跟库文件放在一起会自动加载。
4.如何查找自己依赖缺失
a.下载一个Dependency Walker
b.用软件打开指定路径下的dll
c.红色框标记的黄色问号就是当前我缺失的4个需要的依赖,Dependency Walker 具体使用可以百度学习
d. cn.dll-files.com 去这个网址下载缺失的dll放在你需要调用的dll路径下或者C:\Windows\System32路径下,当前我是64位,32位系统放哪里可以百度了解
5.解决成功返回结果