我目前正在尝试使用 JNA 访问 C API。但是我对通过引用传递的无符号整数参数有疑问。
所以这是有问题的C函数:
int EE_DataGetNumberOfSample(DataHandle hData, unsigned int* nSampleOut);
在Java中我有:
public int EE_DataGetNumberOfSample(Pointer hData, ByReference nSampleOut);
这是我使用它的方式:
IntByReference nSamplesTaken = new IntByReference();
edk.EE_DataGetNumberOfSample(hData.getValue(), nSamplesTaken);
int nativeNSamplesTaken = nSamplesTaken.getValue();
System.out.println(Integer.toBinaryString(nativeNSamplesTaken)+"("+nativeNSamplesTaken+")");
这给了我:
11000100110110010011000000(51602624)
虽然它应该是0。
我使用 JNA-API 的方式有问题吗?
谢谢!