Bonjour,
J'essaie d'accéder à une fonction d'une dll via JNA. Le problème c'est que dans cette fonction, les 4 derniers paramètres sont des paramètres de sortie. Le truc c'est que je ne sais pas comment les récupérer.
Voici l’entête de la méthode en C:
unsigned short Lec_IntroductionMstCPS ( unsigned short usNoSession,
short sTempsAttente,
char tcCodeCivilite[2],
char szNomPatronymique[27],
short * psEtatCarte,
unsigned short * pusCodeErreur );
j'ai ça dans mon interface JNA:
public short Lec_IntroductionMstCPS ( NativeLong usNoSession, short sTempsAttente, PointerByReference tcCodeCivilite, PointerByReference szNomPatronymique, ShortByReference psEtatCarte, NativeLongByReference pusCodeErreur );
Puis j'appelle la méthode comme ceci:
1 2 3 4 5 6 7 8 9 10 11 12
| PointerByReference tcCodeCivilite = new PointerByReference();
PointerByReference szNomPatronymique = new PointerByReference();
ShortByReference psEtatCarte = new ShortByReference();
NativeLongByReference pusCodeErreur = new NativeLongByReference();
retour = wrapperVitale.Lec_IntroductionMstCPS(numeroSessionCps, (short)0, tcCodeCivilite, szNomPatronymique, psEtatCarte, pusCodeErreur);
Pointer codeCivilite = tcCodeCivilite.getValue();
Pointer nom = szNomPatronymique.getValue();
short etatCarte = psEtatCarte.getValue();
NativeLong erreur = pusCodeErreur.getValue();
return retour; |
Je récupère bien tout mais les variables codeCivilite, nom et etatCarte sont remplies avec des données louches (native@0x32434f44 contenant une données peer avec pour valeur un long). Moi je veux juste récupérer un string... Comment faire??
Partager