Java使用JNA调用DLL库

本文介绍如何使用JNA让Java程序调用C/C++编写的DLL文件。首先通过编写C/C++代码并创建DLL,然后利用Java Native Access (JNA) 库在Java中加载并使用该DLL。需注意C函数导出方式及DLL文件放置位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值