Forum Programmation.java [astuce] JNAerator et DevC++

Posté par  .
Étiquettes : aucune
3
25
jan.
2011
Le projet open sources [http://code.google.com/p/jnaerator/] permet de simplifier l'intégration de bibliothèque native (dll/so) dans un projet java.
Il s'appuie sur JNA, une bibliothèque java de Sun qui facilite l'accès aux bibliothèques natives, principalement sous Linux, Solaris et Windows.
Même si, au final, l'invocation de la bibliothèque native s'effectue par JNI, JNAerator permet de simplifie l'intégration pour le développeur qui n'a plus besoin d'écrire la glue (.h et .c), les conversions de types et autres joyeusetés.

Le projet open sources [http://www.bloodshed.net/dev/devcpp.html] est un IDE C/C++ pour windows. Il propose en particulier un assistant pour la création de bibliothèque partagée (dll).

J'utilise ces outils quand une bibliothèque native propose des fonctions que je ne souhaite pas ou qui ne sont pas faciles à porter en java ou que je ne souhaite pas maintenir moi même.

J'en viens à une astuce ou du moins une indication sans laquelle j'ai perdue pas mal de temps pour faire fonctionner le tout et qui n'est pas facile à trouver sur le net.

Dans le .h, toutes les fonctions qui doivent être accessibles côté java doivent être précédées de l'instruction pré-processeur "DLLIMPORT".

Sans cela, côté java, on obtient une mystérieuse "UnsatisfiedLinkError: Error looking up function ..." alors qu'il a bien la dll et que "nm" rapporte bien le symbole correspondant à la fonction.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.