Java调用C/C++ 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文件放在任意路径,推荐放在项目路径下

猜你喜欢

转载自www.cnblogs.com/vevy/p/9076941.html
今日推荐