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);
}
}
注意
- 待导出的C函数前一定要加extern"c",不然导出的DLL JNA找不到
#define JNADLL extern “C” __declspec(dllexport)
- 导出的DLL文件放在任意路径,推荐放在项目路径下