使用指针和数组
原始数组参数(包括结构)由它们对应的 Java 类型表示。例如:
//原始 C 声明
void fill_buffer ( int *buf, int len);
void fill_buffer ( int buf[], int len); //与数组语法相同
// 等效的 JNA 映射
void fill_buffer ( int[] buf , int len );
注意:如果参数要被函数调用范围之外的本机函数使用,则必须使用内存或 NIO 直接缓冲区。Java 原始数组提供的内存仅在函数调用期间由本机代码使用有效。
C 字符串数组(例如Cmain
方法 char* argv[]
)可以用String[] Java
代码表示。JNA 将自动传递具有NULL最终元素的等效数组。
网友评论