Java使用JNA调用DLL库

Java调用DLL方法有三种,JNI、JNA、JNative, 本文为JNA

JNA为使用jna.jar包,下载地址:http://www.java2s.com/Code/Jar/j/Downloadjna325jar.htm

1.编写c/c++代码,创建测试DLL --> 新建win32项目MyDLL,勾选DLL

//myDLL.h
#define JNADLL extern "c" _declspec(dllexport)
JNADLL int add(int x, int y);

//myDLL.cpp
int add(int x, int y){
	return x + y;
}

点击生成解决方案生成MyDLL.dll文件,默认放在项目DEBUG目录里

2.编写Java测试代码
新建Java项目 --> 新建接口JNATestDLL

public interface JNATestDLL extends Library {
	JNATestDLL instance  = (JNATestDLL)Native.loadLibrary("MyDLL",JNATestDLL.class);
    public int add(int x, int y);
}

编写测试类

public class CallDLLJNA{
	public static void main(String args[]){
		JNATestDLL test = JNATestDLL.instance;
		int c = test.add(1,2);
		System.out.println(c);
	}
}

注意

  1. 待导出的C函数前一定要加extern"c",不然导出的DLL JNA找不到 #define JNADLL extern “C” __declspec(dllexport)
  2. 导出的DLL文件放在任意路径,推荐放在项目路径下
原文地址:https://www.cnblogs.com/vevy/p/9076941.html