J'essaie actuellement d'accéder à une API C en utilisant JNA. Mais j'ai un problème avec les paramètres entiers non signés qui sont passés par référence.JNA entier non signé par référence donne des résultats étranges
Voici donc la fonction C en cause:
int EE_DataGetNumberOfSample(DataHandle hData, unsigned int* nSampleOut);
En Java je:
public int EE_DataGetNumberOfSample(Pointer hData, ByReference nSampleOut);
Et voici comment je l'utilise:
IntByReference nSamplesTaken = new IntByReference();
edk.EE_DataGetNumberOfSample(hData.getValue(), nSamplesTaken);
int nativeNSamplesTaken = nSamplesTaken.getValue();
System.out.println(Integer.toBinaryString(nativeNSamplesTaken)+"("+nativeNSamplesTaken+")");
Cela donne moi:
11000100110110010011000000 (51602624)
Altough il devrait être 0.
Y at-il quelque chose de mal avec la façon dont j'utilise la JNA-API?
Merci!