如何在JNA结构中接收指针数组?

时间:2018-01-10 21:00:18

标签: jna

以下是C API I中使用的结构定义:

typedef struct {
    int nADs;
    int** mPIAD;
} LSO;

int CalcTheValue(int numMats;
                 LSO* returnValue);

mPIAD"实际上"一个二维数组,其中nADS是第一个维度,第二个维度是numMats。

目前我的JNA定义如下:

public static class t_LdvSummaryOutput_v1 extends Structure {
    public int numADs;
    public Pointer mPIADs; // int**
}

使用Eclipse调试器我看到mPIADS中的数据不是我所期望的。我应该将单个数字的整数作为返回值,但我会看到非常大的整数值。

我应该将mPIAD声明为public Pointer[] mPIADs吗?

1 个答案:

答案 0 :(得分:0)

由于指针实际上是一个指针数组,因此可以使用Pointer.getPointerArray

// t_LdvSummaryOutput_v1 output;
Pointer[] mPIADs = output.mPIADs.getPointerArray(0, output.numADs)