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

  • 本文关键字:指针 数组 结构 JNA jna
  • 更新时间 :
  • 英文 :


这是我正在使用的C API中结构的定义:

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 吗?

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

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

最新更新