Bonjour tout le monde,

Je dois réaliser une application pour ecrire des données sur une carte magnétique via un "encoder" connecté sur un port série. Le fabricant fournit une dll pour gerer les opérations. Apres qques recherches je trouve un exemple qui montre comment charger cette dll et utiliser les méthodes en code natif qu'elle contient.

Code : 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
public class TestDLL {
 
    private native int Init_com(String conf);
    static {
        System.loadLibrary("card");
      }
 
    public static void main(String[] args) {
        try {
            System.out.println("retour fct Init_com: "+new TestDLL().Init_com("1,9600,N,8,1"));
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
 
    }
 
 
}
Apparement la dll se charge convenablement mais un probleme se pose quand je veux éxécuter le méthode Init_com et voici l'execption levée :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Exception in thread "main" java.lang.UnsatisfiedLinkError: Init_com
	at TestDLL._reset(Native Method)
	at TestDLL.main(TestDLL.java:21)
Je tiens à préciser que je n'ai pas encore l'appareil MAIS cette fonction, Init_com, devrait me renvoyé 0 en cas de probleme de communication.

Code : 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
Initial function
 
1) Init_com(sett:pchar):integer
 
 
 
 Function:Initial serial port
 
 
 
 Return:Integer
 
     =    1:Success
 
          0:Communication failed。
 
         -1:Port is being occupied。
 
         -3:Invalid configuration 。
Alors voila :


Je me demande si on peut utiliser comme ca des dll "extérieures"(sans utiliser JNI pour les construire) ou si je m'y prend mal pour accéder aux fonctions natives.

Tout les docs que je trouve me montre comment construire moi meme ma dll avec JNI et jamais une utilisation d'une dll déjà existante.

J'ai besoin d'un éclaircissement, merci pour votre aide.

Fred.