亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

jna對dll&so的調用

標簽:
Java C

dll&so的生成
dll生成方法:
用记事本(notepad++)打开一个空的c语言源代码页面,在其中按照c语言规范写几个简单函数:
#include<stdio.h>
void hello(){
printf("hello world!");
}
int suan(int a,int b){
int c;
c = a + b;
return c;
}
一、如果windows有安装gcc,则打开cmd,用cd打开到c源码目录,输入:
gcc -shared -o 文件名.dll 文件名.c  
即可获得dll文件。
二、如果windows没有装gcc,可以rz命令把源码上传到云服务器,因为linux默认自带gcc,所以可以直接编译。
Dll文件:gcc -fPIC -shared 文件名.c -o 文件名.dll
So文件:gcc -shared -fpic -o 文件名.so 文件名.c
然后可以用sz 文件名,这条命令再把dll下载回电脑上。
dll&so的环境配置
前往各大论坛下载jna.jar开发包,并新建一个java项目将jar包挂载上去。
在根目录下新建一个lib文件夹,并在项目名上右键打开项目配置目录。
选择source下的src文件夹,选中第三项双击点开
选择workspace,选择到项目的lib文件夹下
将自己写好的dll&so文件放到lib文件目录下。
dll&so的使用
新建一个interface(接口)文件,并让其继承Library接口。
范例代码如下:
import com.sun.jna.Library;
import com.sun.jna.Native;

public interface ceshi extends Library{
ceshi cc = Native.loadLibrary("dll或者so名字", ceshi.class);//声明引用文件名字
public void hello();//对c源码所写的全部方法名,写出对应接口
public int suan(int a,int b);
}

需要注意的是,c源码的方法名必须和这个声明类里面的一模一样,不然会报错,此外引用声明处不用写引用文件的后缀,只写名字就可以了。

搞定之后就要用其他函数调用试试看了,新建一个Main.class
输入以下代码测试:
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int c = ceshi.cc.suan(s.nextInt(), s.nextInt());
System.out.println(c);
ceshi.cc.hello();
}
}

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消