JNA unsigned целое число по ссылке дает странные результаты
-
25-09-2019 - |
Вопрос
В настоящее время я пытаюсь получить доступ к 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?
Спасибо!
Решение
Чтобы ответить на мой вопрос:
Нет ничего плохого в кодовых фрагментах, которые я разместил сюда, но была еще одна совершенно не связанная ошибка, которая не имеет никакого отношения к вопросу.
закрыто
Не связан с StackOverflow