Bonjour,
Je post ici car j'ai un petit problème avec JNA (Java Native Access), après avoir suivis un tutoriel pour utiliser une librairie je suis arrivé à ces deux fichiers la :
Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public interface Polar extends Library { public int fnHRMCom_GetLibraryVersion(); }
la fonction est definit ainsi dans le hrmcom.h :
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 // Get hrmcom library file version __declspec (dllexport) int CALLBACK fnHRMCom_GetLibraryVersion (void);
qui est appelé ici:
Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 String message = "La Librairie de Monsieur est chargée ^^"; System.setProperty("jna.library.path", System.getProperty("user.dir") + File.separator + "Library"); final Polar p = (Polar) Native.loadLibrary("hrmcom", Polar.class); JOptionPane.showMessageDialog(null, message, "Info", JOptionPane.INFORMATION_MESSAGE); try { p.fnHRMCom_GetLibraryVersion(); } catch (Error e2) { int i = 0; message = e2.getLocalizedMessage()+"\n\n"+e2.getCause()+"\n\n"; for( StackTraceElement st : e2.getStackTrace()) { if(i> 15) break; message+=st.toString()+"\n"; ++i; } JOptionPane.showMessageDialog(null, message, "Erreur", JOptionPane.INFORMATION_MESSAGE); } return;
la librairie est bien chargée , sauf que lorsque je fais appel à une fonction présente dans la dll, mais j'ai une erreur :
Erreur looking up function 'fnHRMCom_GetLibraryVersion' : La procedure spécifiée est introuvable.
Vous pouvez trouver la dll et le .h à cette adresse.
Si vous avez déjà rencontré le problème ou si vous avez une idée de ce qui a pu se passer, j'attends vos réponses...
D'avance merci.
Partager