欢迎光临散文网 会员登陆 & 注册

10.6 番外:java调用动态库文件dll(附带纠正上个视频遗漏)

2023-04-11 22:47 作者:平淡的半杯水  | 我要投稿

视频讲解:哔哩哔哩

哈哈哈哈,大家有没有迫不及待的,去调用我们自己制作的,好的,我们开始吧~


首先看下,我们制作的两个dll文件,一个是C的,有一个是C++

他们调用的方法都以一样的,没什么区别,我们先来调用t1.dll吧


首先,我们打开之前用来创建头文件所写的Java文件,完善它!!

附上之前的代码是这样的

class T1{

            public native void say(); 

}


我们来给他添加一个静态代码块

    class T1{

            public native void say();

            static{


            }

    }


在这代码块里,写什么呢。调用一个载入的方法

我们可以清楚的看到,api中就有记载了,犹豫什么,照着干,就这么简单,给他一个路径,动态的库路径!!!


    class T1{

            public native void say();

            static{

                        System.load("F:\\项目代码\\java2\\T2\\t1.dll");

            }

    }


好的哟,我们了自己的类,那么还等什么,建一个主函数,开始创建对象,然后调用呗

如果正常运行的话,就成功啦,但是,我们之前埋了一个雷,它会出现这个错

我们来看下

UnsatisfiedLinkError

意思是指找不到指定模块,问题出在哪里呢

我们来来看下

错误就在这里,各位朋友,我们这个   方法是哪里来的,是不是要告诉下编译器下

是的引入我们之前创建的头文件  !!!!!!!!!

好的,我们从新来制作下dll文件

具体为什么这么写,详看上一篇文章

好了,我们在调用下

很好,成功调用了,依葫芦画瓢,我们来调用c++生成的文件,记得先引入缺少的头

文件,这边还要注意的是,代码依旧写在T1.java ,不能另外开一个,因为我们头文件是根据T1.Java来创建的哦,详见视频


最后总结归纳下:

第一步:创建一个头文件

第二步:根据这个头文件,写出C或C++文件

第三步:制作成DLL文件

第四步:制作对象文件

第五步:调用它


下面分享下,本视频的用到的源码

10.6 Java调用C或C++动态库文件: https://url79.ctfile.com/d/34437279-55525938-703cef?p=8844 (访问密码: 8844)


10.6 番外:java调用动态库文件dll(附带纠正上个视频遗漏)的评论 (共 条)

分享到微博请遵守国家法律