0
我目前正在嘗試使用JNA訪問C API。但我有一個無符號的整數參數,通過引用傳遞的問題。JNA無符號整數通過引用給出奇怪的結果
因此,這裏是有問題的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+")");
這使me:
11000100110110010011000000(51602624)
Altough它應該是0
是不是有什麼毛病我使用的是JNA-API的方式?
謝謝!