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.