java高级用法之:JNA中的Structure
简介 前面我们讲到了JNA中JAVA代码和native代码的映射,虽然可以通过TypeMapper来将JAVA中的类型和native中的类型进行映射,但是native中的数据类型都是基础类型,如果native中的数据类型是复杂的struct类型该如何进行映射呢? 不用怕,JNA提供了Structure类,来帮助我们进行这些映射处理。 native中的struct 什么时候会用到struct呢?一般情况下,当我们需要自定义一个数据类的时候,一般情况下,在JAVA中需要定义一个class(在JDK17中,可以使用更加简单的record来进行替换),但是为一个数据结构定义class显然有些臃肿,所以在native语言中,有一些更简单的数据结构叫做struct。 我们先看一个struct的定义: typedef struct _Point { int x, y; } Point; 上面的代码中,我们定义了一个Pointer的struct数据类下,在其中定义了int的x和y值表示Point的横纵坐标。 struct的使用有两种情况,一种是值传递,一种是引用传递。先来看下这两种情况在nati...