首页 > 作文

java调用相互依赖的dll的处理方法

更新时间:2023-04-04 19:33:56 阅读: 评论:0

目录
一、问题描述二、处理办法2.1 类定义2.2 调用三、结语

一、问题描述

最近在做一个功能时遇到java需要调用dll,并且dll有依赖关系,之前都是单独调用一个,其实调用dll的都是模板代码,本身没有太高的难度,主要是相互依赖的还是第一次碰见,特此记录一下并分享给需要的朋友参考。

二、处理办法

其中a是dll方法的入口,a依赖b,c,d,e,f,g五个dll,先定义接口继承stdcalllibrary ,编写加载各个dll的模板代码,需要依赖的都全部加载进来,我这儿是a依赖了b,c,d,e,f,g六个dll,所以我这里共写了六个接口,来分别加载不同的dll,主要是因为stdcalllibrary不支持加载多个dll,如果支持的话就不用写多个了,废话不多说直接上代码:

2.2019安徽高考分数线1 类定义

import com.sun.jna.native;import com.sun.jna.win32.stdcalllibrary;/** *  面面相觑的拼音* classname: dllloadclass <br/>  * function: todo add function. <br/>  * reason: todo add reason(可选). <br/>  * date: 2022年1月27日 下午5:08:21 <br/>  *  * @author 行则将至  * @version */public class dllloadclass {/** *  * classname: a <br/>  * function: todo 加载a. <br/>  * reason: todo add reason(可选). <br/>  * date: 2022年1月27日 下午5:08:58 <br/>  *  * @author 行则将至  * @version dllloadclass */public interface a extends stdcalllibrary {string dllname = "dllv2/a";a instance = native.上海美术学院load(dllname,a.class);public string a(string instring); }/** *  * classname: b <br/>  * function: todo 加载b. <br/>  * reason: todo add reason(可选). <br/>  * date: 2022年1月27日 下午5:09:27 <br/>  *  * @author 行则将至   * @version dllloadclass */public interface b extends stdcalllibrary {string dllname = "dllv2/b64";b instance = native.load(dllname,b.class);}/** *  * classname: c <br/>  * function: todo 加载c. <br/>  * reason: todo add reason(可选). <br/>  * date: 2022年1月27日 下午5:09:41 <br/>  *  * @author 行则将至   * @version dllloadclass */public interface c extends stdcalllibrary {string dllname = "dllv2/c64";c instance = native.load(dlln桃李梅打一地名ame,c.class);}/** *  * classname: d <br/>  * function: todo 加载d. <b韩剧女主角发型r/>  * reason: todo add reason(可选). <br/>  * date: 2022年1月27日 下午5:09:50 <br/>  *  * @author 行则将至   * @version dllloadclass */public interface d extends stdcalllibrary {string dllname = "dllv2/d64";d instance = native.load(dllname,d.class);}/** *  * classname: e <br/>  * function: todo 加载e. <br/>  * reason: todo add reason(可选). <br/>  * date: 2022年1月27日 下午5:10:37 <br/>  *  * @author 行则将至   * @version dllloadclass */public interface e extends stdcalllibrary {string dllname = "dllv2/e64";e instance = native.load(dllname,e.class);}/** *  * classname: f <br/>  * function: todo 加载f. <br/>  * reason: todo add reason(可选). <br/>  * date: 2022年1月27日 下午5:10:01 <br/>  *  * @author 行则将至   * @version dllloadclass */public interface f extends stdcalllibrary {string dllname = "dllv2/f64";f instance = native.load(dllname,f.class);}/** *  * classname: g <br/>  * function: todo 加载g. <br/>  * reason: todo add reason(可选). <br/>  * date: 2022年1月27日 下午5:10:10 <br/>  *  * @author 行则将至   * @version dllloadclass */public interface g extends stdcalllibrary {string dllname = "dllv2/g64";g instance = native.load(dllname,g.class);}}

2.2 调用

上边虽然是定义出来了,那么怎么调用或者使用呢?调用其实也很简单,都定义出来了之后,其实就是需要咱们把依赖都加载进来即可,咱们仍然是直接上代码:

public class test {@suppresswarnings("unud")public static void main(string[] args) {b b = dllloadclass.b.instance;c c = dllloadclass.c.instance;d d = dllloadclass.d.instance;f f = dllloadclass.f.instance;g g = dllloadclass.g.instance;a a = dllloadclass.a.instance;string result = a.a("");}}

原理就是调用一下成员变量,让其加载进来即可。

三、结语

道阻且长,行则将至,行而不辍,未来可期,加油。

到此这篇关于java调用相互依赖的dll的处理方法的文章就介绍到这了,更多相关java相互依赖的dll内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-04 19:33:55,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/539c9ded81591645ae23925092188481.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:java调用相互依赖的dll的处理方法.doc

本文 PDF 下载地址:java调用相互依赖的dll的处理方法.pdf

标签:加载   可选   则将   下午
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图