使用JNA将int **传递给C例程

时间:2011-05-14 14:03:24

标签: java arrays native jna

我在我的java程序中有一个int [] [],它存储了我想要计算的一些数据(alter) 在C例程中。但我无法弄清楚如何将“指针指向int”传递给 声明f(int sz,int **结构)的C代码。有什么想法吗?

谢谢, Luc.d

2 个答案:

答案 0 :(得分:2)

由于这是标记JNA的问题, Similar Example in JNA docs

// Original C declaration
void allocate_buffer(char **bufp, int* lenp);

// Equivalent JNA mapping
 void allocate_buffer(PointerByReference bufp, IntByReference lenp);

// Usage
PointerByReference pref = new PointerByReference();
IntByReference iref = new IntByReference();
lib.allocate_buffer(pref, iref);
Pointer p = pref.getValue();
byte[] buffer = p.getByteArray(0, iref.getValue());

这不是你要找的吗?当指针指向指针时使用PointerByReference。

答案 1 :(得分:1)

我认为this示例可能会派上用场:)