通过引用的JNA无符号整数给出了奇怪的结果

时间:2010-05-11 08:37:11

标签: c pass-by-reference unsigned jna signed

我目前正在尝试使用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的方式有问题吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

回答我自己的问题:

我在这里发布的代码片段没有任何问题,但还有另一个完全不相关的错误与该问题无关。

[关闭]