JNA 64bit 调用

java 调用 jna 时 由于 dll 文件与  jdk 的位数可能有所不同,而报错 

我选择将 dll 文件 在visual stadio 中 重写并生成

pom.xml 导入依赖

<dependencies>
    <!-- https://mvnrepository.com/artifact/net.java.dev.jna/jna -->
    <dependency>
        <groupId>net.java.dev.jna</groupId>
        <artifactId>jna</artifactId>
        <version>4.1.0</version>
    </dependency>


</dependencies>

 创建64 位 dll 文件

 

 

将x86 换成 x64

源文件  .cpp  是 c++ 的格式  而我将它重命名为 .c  这就是 c 的格式

头文件 JNIdll.h 中添加 函数声明

#pragma once

__declspec(dllexport) int sum(int a, int b);

.c 文件

#include "stdafx.h"
#include "JNIdll.h" 
#include <stdio.h>

	

		int sum(int a, int b) {
			return a + b;
		}
   

右键项目点击生成

得到  dll 的位置

 

 将dll文件复制粘贴到java 项目的类路径下 

 

import com.sun.jna.Library;
import com.sun.jna.Native;


public interface JNIdll extends Library {
    JNIdll instance = (JNIdll)Native.loadLibrary("JNIdll",JNIdll.class);
    public int sum(int a,int b);
}
import com.sun.jna.Native;

public class jnadll {
    public static void main(String[] args) {
        int c = JNIdll.instance.sum(4,60);
        System.out.println(c);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值