如何从 JNA 调用具有 C 中此方法签名的方法?
int open_device(context *ctx, device **dev, int index);
C 方法的最后两行如下所示:
*dev = pdev;
return 0;
这是该方法中的唯一用途dev
。这意味着我必须将指针传递给指向该方法的空指针,对吗?然后该方法用对象的地址填充空指针,device
我可以将指向设备的指针传递给其他方法。
我的问题是:这是正确的方法吗?如果是,我如何从 Java 分配一个新指针?
根据接受的答案,我这样做了:
Memory p = new Memory(Pointer.SIZE);
Memory p2 = new Memory(Pointer.SIZE);
p.setPointer(0, p2);
nativeLib.open_device(ctx, p, index);
return p2;