JNA unsigned целое число по ссылке дает странные результаты

StackOverflow https://stackoverflow.com/questions/2809128

Вопрос

В настоящее время я пытаюсь получить доступ к 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?

Спасибо!

Это было полезно?

Решение

Чтобы ответить на мой вопрос:

Нет ничего плохого в кодовых фрагментах, которые я разместил сюда, но была еще одна совершенно не связанная ошибка, которая не имеет никакого отношения к вопросу.

закрыто

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top