博客
关于我
jna 调用c++ dll 返回复杂结构体
阅读量:303 次
发布时间:2019-03-03

本文共 605 字,大约阅读时间需要 2 分钟。

经过折腾,确定,在java中定义同样的结构体,如c++中

struct Location {	int nums;	int arr[10];//数组的传递。不能用int *,因为jna的IntByReference.getValue()只能返回一个值};

在java中的定义为

public static class Location extends Structure{            public int nums;            public int[] arr=new int[10];            @Override protected List getFieldOrder() {                return Arrays.asList(new String[]{"nums","arr"});            }        }

dll中函数定义为、

DLL_EXPORT void get_location_message(double,double,Location &);

返回值用引用类型

java中直接调用

CLibrary.Location l=new CLibrary.Location();CLibrary.INSTANCE.get_location_message(lat,lon,l);

这样返回的Location就没有问题了。

转载地址:http://rtim.baihongyu.com/

你可能感兴趣的文章
Linux部署sendmail邮件服务器
查看>>
Centos7部署NFS-V4
查看>>
写了一个测试的webservice项目,如何在服务器上运行jar包 JAVA项目启动脚本
查看>>
C语言和32位汇编语言关于if-else分支结构的对比分析
查看>>
阿里云服务器中XAMPP(Apache)无法用外网访问的原因之一
查看>>
Java小白的入门之路
查看>>
多余元素删除之移位算法
查看>>
Linux自学之旅-基础命令(系统痕迹之who命令)
查看>>
设计模式一(工厂模式)
查看>>
css 设置背景图片铺满固定不动
查看>>
【TSP】基于混合粒子群求解TSP问题matlab源码
查看>>
Ubuntu | cannot remove is a directory
查看>>
CentOS | 02 Centos7如何调节桌面的图标的大小?
查看>>
ie http 中文传参 400错误
查看>>
JAVA_集合
查看>>
mvc+webservice+存储过程分页
查看>>
查看SQL语句执行耗费的时间
查看>>
vue+element-ui实现显示隐藏密码
查看>>
vue中使用el-carousel组件实现图片轮播效果
查看>>
openlayer展示热力图
查看>>