请问这样的一个dll函数,要怎么获取Res,请求是不是这样这样写.
Dll INSTANCE = (Dll) Native.loadLibrary("PCBDll", Dll.class); int i = Dll.INSTANCE.RequestStatus("这里不知道怎么传值");
有数据类型对应关系的: 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里实现过了)。这种作法也叫接口反向调用。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。