В настоящее время я пытаюсь получить доступ к 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+")");
Это дает мне:
11000100110110010011000000 (51602624)
Хотя должно быть 0.
Что-то не так с тем, как я использую JNA-API?
Спасибо!