Bonjour,
Comment appeler une méthode DLL ayant un argument char* en java ?
Dans le .h:L'appel avec du C :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ExportApi int Method(MSESSION, const char*, const char*, const char*);
L'interface JNA
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 // User name. char User[50]; // Password of the user. char Password[50]; Method(Session, User, Options, Password);Donc, comment appeler cette méthode ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 /** * Original signature : <code>int Method(MSESSION, const char*, const char*, const char*)</code><br> * <i>native declaration : line 694</i><br> * @deprecated use the safer methods {@link #Method(com.sun.jna.Pointer, java.lang.String, java.lang.String, java.lang.String)} and {@link #Method(com.sun.jna.Pointer, com.sun.jna.Pointer, com.sun.jna.Pointer, com.sun.jna.Pointer)} instead */ @Deprecated int Method(com.sun.jna.Pointer MSESSION1, Pointer charPtr1, Pointer charPtr2, Pointer charPtr3); /** * Original signature : <code>int Method(MSESSION, const char*, const char*, const char*)</code><br> * <i>native declaration : line 694</i> */ int Method(com.sun.jna.Pointer MSESSION1, String charPtr1, String charPtr2, String charPtr3);
- Utiliser le type String au lieux de char[] ne modifie-t-il pas le traitement de la méthode?
- Utiliser des byte[] comme argument et donc modifier le contenu de l'interface JNA :
byte[] ou String ou Pointer ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part int Method(com.sun.jna.Pointer MSESSION1, Byte[] charPtr1, Byte[] charPtr2, Byte[] charPtr3);
Merci d'avance pour votre aide.
Partager