El entero sin signo de JNA por referencia da resultados extraños
-
25-09-2019 - |
Pregunta
Actualmente estoy intentando acceder a una API de C usando JNA.Pero tengo un problema con los parámetros enteros sin signo que se pasan por referencia.
Aquí está la función C en cuestión:
int EE_DataGetNumberOfSample(DataHandle hData, unsigned int* nSampleOut);
En Java tengo:
public int EE_DataGetNumberOfSample(Pointer hData, ByReference nSampleOut);
Y así es como lo estoy usando:
IntByReference nSamplesTaken = new IntByReference();
edk.EE_DataGetNumberOfSample(hData.getValue(), nSamplesTaken);
int nativeNSamplesTaken = nSamplesTaken.getValue();
System.out.println(Integer.toBinaryString(nativeNSamplesTaken)+"("+nativeNSamplesTaken+")");
Esto me da:
11000100110110010011000000(51602624)
Aunque debería ser 0.
¿Hay algún problema con la forma en que uso JNA-API?
¡Gracias!
Solución
Para responder a mi propia pregunta:
No hay nada malo con los fragmentos de código que he publicado aquí, pero no había otro error completamente ajenos que no tiene nada que ver con la cuestión.
[cerrado]
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow