import com.sun.jna.Library;
import com.sun.jna.Native;
public class CallDLLExample {
// 定义一个接口,对应于DLL中的函数
public interface MyDLL extends Library {
// 声明要调用的DLL函数
int myFunction(int param1, int param2);
}
public static void main(String[] args) {
// 加载DLL库
MyDLL myDLL = (MyDLL) Native.load("mydll", MyDLL.class);
// 调用DLL中的函数
int result = myDLL.myFunction(10, 20);
// 输出结果
System.out.println("Result from DLL: " + result);
}
}
JNA(Java Native Access):我们使用JNA库来简化Java与本地代码(如DLL)之间的交互。JNA允许你直接从Java中调用本地库中的函数,而无需编写JNI(Java Native Interface)代码。
定义接口:通过定义一个接口MyDLL,并让它继承自Library类,我们可以声明我们要调用的DLL中的函数。在这个例子中,我们声明了一个名为myFunction的函数,它接受两个整数参数并返回一个整数。
加载DLL:使用Native.load方法加载DLL文件。第一个参数是DLL的名称(不带扩展名),第二个参数是指定接口的类。
调用函数:通过接口实例myDLL调用DLL中的函数,并将结果存储在变量result中。
输出结果:最后,我们将结果打印到控制台。
请确保你已经添加了JNA库到你的项目中。如果你使用Maven,可以在pom.xml中添加以下依赖:
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>5.8.0</version>
</dependency>
上一篇:java的数据类型
下一篇:java 拼接字符串
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站