以下是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
吗?
答案 0 :(得分:0)
由于指针实际上是一个指针数组,因此可以使用Pointer.getPointerArray
:
// t_LdvSummaryOutput_v1 output;
Pointer[] mPIADs = output.mPIADs.getPointerArray(0, output.numADs)