爪哇:
Pointer[] myArray;
myArray是一系列指针。
C ++
myfun(void** myArray){
void *a = myArray[0];
}
如何通过JNA传递指针数组?
我在Java中尝试了myfun(Pointer[] myArray)
,但它在运行时报告不支持参数类型,如下所示:
引起:java.lang.IllegalArgumentException:class [Lcom.sun.jna.Pointer;不是受支持的参数类型(在类com.xx.yy.zz中的方法myfun中)
答案 0 :(得分:0)
public class xxPointer extends Structure {
public Pointer myPointer;
在C ++中:
struct xxPointer {
void* myPointer;
};
接口: 在Java中:
myFun(xxPointer.ByReference br);
在C ++中:
myFun(xxPointer * xp)
Java中的:
xxPointer.ByReference rp = new xxPointer.ByReference();
xxPointer.ByReference pointers = (xxPointer[]) rRecord.toArray(array count);
assignment value for pointers[i].myPointer
myFun(rp);