JNA
JNA(Java Native Access )
JNA框架,开源Java框架,提供一组Java工具类用于在运行期间动态访问系统本地库(native library),不需要编写任何Native/JNI代码,在一个Java接口中描述目标native library的函数与结构,JNA将自动实现Java接口到native function的映射。
JNA调用C/C++的过程
代码案例
DLL准备
动态链接库的创建与使用,Visual Studio 2022,保存为:d:\MyData\Dll1.dll。
Java代码
pom.xml
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>4.5.1</version>
</dependency>
Dll1.java
package com.what21.jna;
import com.sun.jna.Library;
import com.sun.jna.Native;
public interface Dll1 extends Library {
//1、动态库拷贝到Java工程目录下
//MyDll mydll = (MyDll) Native.loadLibrary("Dll1.dll",MyDll.class);
//2、动态库拷贝不在Java工程目录下,指定绝对路径
Dll1 dll1 = (Dll1) Native.loadLibrary("D:\\MyData\\Dll1.dll",Dll1.class);
//c或者c++中的方法
int max_number(int a, int b);
int min_number(int a, int b);
}
Main.java
package com.what21.jna;
public class Main {
public static void main(String[] args) {
int max_number = Dll1.dll1.max_number(4444, 3333);
System.out.println("max_number=" + max_number);
int min_number = Dll1.dll1.min_number(4444, 3333);
System.out.println("min_number=" + min_number);
}
}
本文暂时没有评论,来添加一个吧(●'◡'●)