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!

¿Fue útil?

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
scroll top