在JNA中C代码中的char** 类型以及int*、int**类型应该映射成什么类型
时间: 2023-07-23 21:13:07 浏览: 182
在JNA中,C代码中的char**类型可以映射为Java的String[]类型。
对于int*类型,可以映射为Java的IntByReference类型。
而int**类型,则可以映射为Java的PointerByReference类型。
这些JNA提供的类型可以与C代码中的相应类型进行交互,并进行读取和修改操作。在使用时,请确保正确地使用这些类型,并根据实际需求进行适当的转换和处理。
相关问题
提供一份JNA类型映射表格
以下是一份常见的JNA类型映射表格,用于将本地库中的原生类型映射到Java对应的类型:
| 原生类型 | Java对应类型 |
| ------------ | ------------------ |
| void | void |
| boolean | boolean |
| byte | byte |
| char | char |
| short | short |
| int | int |
| long | long |
| float | float |
| double | double |
| String | java.lang.String |
| Pointer | com.sun.jna.Pointer |
| Struct | 自定义结构体类 |
| Callback | 自定义回调接口 |
| NativeLong | com.sun.jna.NativeLong |
| NativeInt | com.sun.jna.NativeInt |
| WString | com.sun.jna.WString |
| WideChar | com.sun.jna.WCHAR |
| BooleanByReference | com.sun.jna.ptr.BooleanByReference |
| ByteByReference | com.sun.jna.ptr.ByteByReference |
| ShortByReference | com.sun.jna.ptr.ShortByReference |
| IntByReference | com.sun.jna.ptr.IntByReference |
| LongByReference | com.sun.jna.ptr.LongByReference |
| FloatByReference | com.sun.jna.ptr.FloatByReference |
| DoubleByReference | com.sun.jna.ptr.DoubleByReference |
在使用JNA时,你可以根据本地库中函数的参数和返回值类型,将其映射到上表中的Java类型。对于自定义的结构体和回调接口,你需要创建相应的Java类和接口来表示。
需要注意的是,JNA还提供了一些其他的类型映射和指针处理功能,可以根据需要进行使用。
请根据你要使用的本地库的情况,参考上述表格进行类型映射。
阅读全文