开发者社区> 问答> 正文

Java jna 调用dll,怎么获取返回信息? 400 请求报错 

请问这样的一个dll函数,要怎么获取Res,请求是不是这样这样写.

Dll INSTANCE = (Dll) Native.loadLibrary("PCBDll", Dll.class); int i = Dll.INSTANCE.RequestStatus("这里不知道怎么传值");
 

展开
收起
kun坤 2020-05-30 17:22:50 1346 0
1 条回答
写回答
取消 提交回答
  • 有数据类型对应关系的: http://blog.csdn.net/gwd1154978352/article/details/55097376######解决了吗博主,我也遇到了这个问题  ######后面用js调了,你看下这个能不能帮到你https://gitee.com/freelibra/jna-test######jna调用其实很简单。但楼主用法似乎和本人使用不太一样,下面说下我的做法。 首先你需要有一个接口去继承Jna.Library超类。 然后在你的这个接口里使用CLibrary 的实例,即聚合它到接口里来 再然后就是定义方法实现也就是写一个和DLL里一模一样的方法来被其它类调用。注意这里是接口调用不要实现这个接口。 像楼主dll里的方法就是在这个接口里RequestStatus。 最后注意的是RequestStatus这个方法的参数的数据转换。char要写成string因为C,C++的标准库里没有字符串,字符串都是char,只有std或cli里才有string。int* 则是输出参数,即ref int 这样。 所以说楼主这里用错了。你要调用这个dll的方法需要先做一个接口然后在接口里定义同名方法。调用时调用这个接口方法就可以了(不要实现这个方法,这个方法已经在C++dll里实现过了)。这种作法也叫接口反向调用。  

    2020-05-30 17:22:56
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载