遇到一个问题,请大家帮忙分析一下
我使用JNA调用dll,DLL中函数list有两个参数a、b,a表示C++中结构体Ordinate数组的指针,b表示a的维数类型是int*,调用函数list成功后给a、b赋值 我的调用代码是这样的: Ordinate.ByReference[] a = new Ordinate.ByReference[MAX];
IntByreference b = new IntByreference();
list(a,b);
StringBuffer sb = new StringBuffer("");
for(int i= 0;i <b.getvalue();i++)
{
sb.append(a[i].属性1);
sb.append(a[i].属性2);
System.out.println(sb);
sb.delete(0,sb.length());
}
现在的问题是,b.getvalue()可以得到正确的值,
但是报错:java.lang.NullPointerException;
好像是红色代码部分的问题。 请问这个问题出在哪里啊?跟内存锁定有关系吗?PIN问题?(这几个名词我也不知道什么意思)
请大家帮忙解决一下吧!谢谢
我使用JNA调用dll,DLL中函数list有两个参数a、b,a表示C++中结构体Ordinate数组的指针,b表示a的维数类型是int*,调用函数list成功后给a、b赋值 我的调用代码是这样的: Ordinate.ByReference[] a = new Ordinate.ByReference[MAX];
IntByreference b = new IntByreference();
list(a,b);
StringBuffer sb = new StringBuffer("");
for(int i= 0;i <b.getvalue();i++)
{
sb.append(a[i].属性1);
sb.append(a[i].属性2);
System.out.println(sb);
sb.delete(0,sb.length());
}
现在的问题是,b.getvalue()可以得到正确的值,
但是报错:java.lang.NullPointerException;
好像是红色代码部分的问题。 请问这个问题出在哪里啊?跟内存锁定有关系吗?PIN问题?(这几个名词我也不知道什么意思)
请大家帮忙解决一下吧!谢谢
a,b都是出口参数,好像a没有进行赋值啊,a在C++里的定义是struct Ordinate ××a,
请问我在JNA里怎么写啊?Ordinate.ByReference[] a 是不是有问题啊?