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

首先是官方给出来的映射

 


 

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

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 }

 

 

转载于:https://www.cnblogs.com/cnliang/p/10900202.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值