码迷,mamicode.com
首页 > 编程语言 > 详细

JNA C语言与Java类型转换(不定期更新)

时间:2019-05-21 16:06:14      阅读:500      评论:0      收藏:0      [点我收藏+]

标签:alt   order   stat   机构   class   demo   网上   height   ret   

首先是官方给出来的映射

 

技术图片


 

以下是自己在配置过程中通过网上各种资料查找到的映射,(欢迎评论补充,我会一一补充进来)

C语言 Java
char * String (作为入口参数)
byte[]  (作为出口参数)
unsigned char * String  (作为入口参数)(不确定,没具体使用过
Pointer (作为出口参数)
int * IntByReference
   
   

 

 

 

 

 

 

 


 

结构体

在Java中需要设计一个类并继承Structure类

Demo:

 1 public class IDInfo extends Structure {
 2 
 3     public byte[] name       = new byte[32]; //姓名
 4     public byte[] sex        = new byte[4]; //性别
 5     public byte[] nation     = new byte[12]; //民族
 6     public byte[] birthday   = new byte[20]; //出生日期
 7 
 8     public static class ByValue extends IDInfo implements Structure.ByValue {
 9     }
10 
11     public static class ByReference extends IDInfo implements Structure.ByReference {
12     }
13 
14     @Override
15     protected List<String> getFieldOrder() {
16         // 顺序必须与C语言机构体中的顺序一致
17         List<String> fieldOrderList = new ArrayList<String>();
18         fieldOrderList.add("name"); //姓名
19         fieldOrderList.add("sex"); //性别
20         fieldOrderList.add("nation"); //民族
21         fieldOrderList.add("birthday"); //出生日期
22         
23         return fieldOrderList;
24     }
25 
26 }

 

 

JNA C语言与Java类型转换(不定期更新)

标签:alt   order   stat   机构   class   demo   网上   height   ret   

原文地址:https://www.cnblogs.com/cnliang/p/10900202.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!