目前,我正在试图访问使用JNA一个C API。但是我有一个问题,正在通过引用传递的无符号整数的参数。

因此,这里是有问题的C函数:

int EE_DataGetNumberOfSample(DataHandle hData, unsigned int* nSampleOut);

在爪哇我有:

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)

Altough它应该是0。

时有什么问题我使用的是JNA-API的方式?

谢谢!

有帮助吗?

解决方案

要回答我的问题:

有什么不对的代码段我张贴在这里,但有另一种具有无关的问题完全无关的错误。

[关闭]

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top