2009-05-27 6 views
4

J'ai un .dll qui a été fourni, et j'ai besoin de l'interface avec java. Dois-je réécrire le C pour utiliser les types JNI fournis dans jni.h? comme on le voit dans l'exemple jni de java sun. Sinon, comment puis-je déclarer la fonction native ma fonction Java pour passer et recevoir des pointeurs?Java Native Interface avec n'importe quel code C arbitraire

merci

Répondre

4

Vous pouvez trouver JNA utile

« JNA offre des programmes Java un accès facile aux bibliothèques natives partagées (DLL sous Windows) sans écrire quoi que ce soit, mais le code-no Java JNI ou code natif est nécessaire. Cette fonctionnalité est comparable à Windows 'Ctypes Platform/Invoke et Python: Access est dynamique à l'exécution sans génération de code. "

+0

Merci je vais regarder dans – tyeh26

+0

JNA semble bon projet d'utiliser les DLL de JAVA – firstthumb

3

D'une certaine manière, oui.

La plupart du temps, vous écriviez simplement une petite DLL «wrapper» avec des fonctions qui effectuaient les conversions de type et déléguaient les fonctions correspondantes dans la DLL «réelle».

2

Vous pouvez réécrire le code C bien sûr, mais il n'est pas rare d'écrire un wrapper (techniquement, en utilisant le modèle Facade ou Bridge) pour le code C. Vous écrivez du code qui correspond à vos attentes dans Java, et que ce code appelle votre code C existant.

Questions connexes