JNA entier non signé par référence donne des résultats étranges
-
25-09-2019 - |
Question
J'essaie actuellement d'accéder à une API C en utilisant la JNA. Mais j'ai un problème avec des paramètres entiers non signés qui sont passés par référence.
Voici donc la fonction C en question:
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 me donne:
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!
La solution
Pour répondre à ma propre question:
Il n'y a rien de mal avec les extraits de code que j'ai posté ici, mais il y avait une autre erreur sans aucun rapport qui n'a rien à voir avec la question.
[fermée]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow