java解析dll文件心得

本文介绍使用Java调用C/C++生成的DLL文件的三种方法:JNI(Java Native Interface)、JNA(Java Native Access)及JNative。重点介绍了通过JNA实现的具体步骤和示例代码,包括定义接口、加载库文件及调用DLL中的函数。

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

java解析C或者C++生成的dll 文件一般有三种方法。

第一种方式:JNI 比较复制也比较原始,不多说了。(因为太复杂了,我也没用)

第二种方式:JNA 这个需要下载jna.jar。需要把dll文件放到与改类同级的文件夹下

然后代码如下:

 // 定义接口CLibrary,继承自com.sun.jna.Library  
    public interface testdll extends Library {  
    String fileName = "UHFReader188.dll";
    String filePath = testdll.class.getResource("").getPath().replaceFirst("/", "").replaceAll("%20", " ") + fileName;
     
    testdll Instance = (testdll) Native.loadLibrary(filePath, testdll.class);
        // CloseSpecComPort为UHFReader188.dll中的一个方法.  
        public int CloseSpecComPort(int l);
    }  
  
    public static void main(String[] args) { 
            int cc =  testdll.Instance.CloseSpecComPort(8090);  
            System.out.println(cc);
    }  

第三种方式:JNative(这个我也没用,也就不多介绍了)


注意:用JNA,还有JNative用的JDK都要是32位的解析的dll文件也是32位的(当时解析64位dll没不成功,说的有什么不对的望大神指点^-^)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值