JNA高级用法中,Structure结构体如何高效使用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1691个文字,预计阅读时间需要7分钟。
目录+简介+native中的struct+Structure+特殊类型的Structure+结构体数组作为参数+结构体数组作为返回值+结构体中的结构体+结构体中的数组+结构体中的可变字段+结构体中的只读字段+总结+简介
目录- 简介
- native中的struct
- Structure
- 特殊类型的Structure
- 结构体数组作为参数
- 结构体数组作为返回值
- 结构体中的结构体
- 结构体中的数组
- 结构体中的可变字段
- 结构体中的只读字段
- 总结
前面我们讲到了JNA中JAVA代码和native代码的映射,虽然可以通过TypeMapper来将JAVA中的类型和native中的类型进行映射,但是native中的数据类型都是基础类型,如果native中的数据类型是复杂的struct类型该如何进行映射呢?
不用怕,JNA提供了Structure类,来帮助我们进行这些映射处理。
native中的struct什么时候会用到struct呢?一般情况下,当我们需要自定义一个数据类的时候,一般情况下,在JAVA中需要定义一个class(在JDK17中,可以使用更加简单的record来进行替换),但是为一个数据结构定义class显然有些臃肿,所以在native语言中,有一些更简单的数据结构叫做struct。
本文共计1691个文字,预计阅读时间需要7分钟。
目录+简介+native中的struct+Structure+特殊类型的Structure+结构体数组作为参数+结构体数组作为返回值+结构体中的结构体+结构体中的数组+结构体中的可变字段+结构体中的只读字段+总结+简介
目录- 简介
- native中的struct
- Structure
- 特殊类型的Structure
- 结构体数组作为参数
- 结构体数组作为返回值
- 结构体中的结构体
- 结构体中的数组
- 结构体中的可变字段
- 结构体中的只读字段
- 总结
前面我们讲到了JNA中JAVA代码和native代码的映射,虽然可以通过TypeMapper来将JAVA中的类型和native中的类型进行映射,但是native中的数据类型都是基础类型,如果native中的数据类型是复杂的struct类型该如何进行映射呢?
不用怕,JNA提供了Structure类,来帮助我们进行这些映射处理。
native中的struct什么时候会用到struct呢?一般情况下,当我们需要自定义一个数据类的时候,一般情况下,在JAVA中需要定义一个class(在JDK17中,可以使用更加简单的record来进行替换),但是为一个数据结构定义class显然有些臃肿,所以在native语言中,有一些更简单的数据结构叫做struct。

