IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

[JNI] Interfaçage appli. Java et .DLL


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 10
    Par défaut [JNI] Interfaçage appli. Java et .DLL
    Bonjour à tous,
    Dans le cadre d'un stage, je dois interfacer un périphérique (un casque enregistrant les electroencéphalogrammes) et une application java (V.6)

    Je possède les .h du casque et bien entendu, les sources de l'application.

    Un autre stagiaire avait déjà interfacé un oculomètre avec l'application, et je dispose, pour m'aider, d'une partie de son travail.

    J'ai compris le mécanisme de JNI (la marche a suivre) mais je me pose certaines questions:

    -Les .h du casque possèdent un grand nombre de enum, define et structure que j'ai transformé en classe java (j'ai laissé certains enum de type enum pour des raisons particulières). Après transformation de ces .h en .class, j'ai effectué la commande javah pour créer des header. Mais, ayant crée une quarantaine de class pour pallier à mes enum, struct et compagnie, je me retrouve avec 40 .h (logique), et je me demande donc s' il est nécessaire de redéfinir dans mes .class les énumérations.

    En effet, le travail de l'autre stagiaire montre qu'il n'a pas déclaré ou défini les enum, et qu'il l'ai a fait disparaitre:

    Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //Dans sont edk.h d'origine (celui servant pour la dll):
    DLL_Export long_stdcall LaMéthode (char *X, int Y, enumération Z) //--> énumération étant un type enum étant défini plus haut dans le .h
     
    //Quand il transforme cette méthode dans edkJNI.java, cela donne:
    public static native int LaMéthode (String X, int Y);   //--> l'énumération à disparu.

    Je voulais donc savoir si je devais obligatoirement redéfinir les enum, struct et define en class, dans le cas contraire, je me retrouverai avec beaucoup moins de header.

    Merci d'avance pour vos réponses, n'hésitez pas si vous avez besoin d'autres informations. (et désolé si ce n'est pas assez clair)

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Bah, utiliser JNA à la place de JNI

    http://blog.developpez.com/adiguba?t..._pour_les_nuls

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 10
    Par défaut
    Bonjour,

    J'ai testé avec JNA, qui est beaucoup plus simple à implémenter, mais je dois néanmoins essayer avec JNI^^ (merci quand même pour la réponse)

    Après plusieurs essais, j'ai résolu mon problème cité plus haut...
    Je suis maintenant à la phase de compilation pour la création de la DLL

    De mes .cpp, j'ai réussi à créer deux fichiers .o (après avoir résolu l'ensemble des erreurs de compilation)

    Il me reste donc à créer la DLL via ces fichiers .o. Le problème est que j'ai les fameux "undefined reference to" suivis des méthodes de mes fichiers .cpp.

    Je voulais donc savoir comment faire en sorte que ma commande g++ (ou gcc) prenne en option les headers contenant les méthodes qui posent problème.

    Merci d'avance^^

    bonne soirée!

Discussions similaires

  1. [MAC] Lancement d'appli java
    Par zakir dans le forum Général Java
    Réponses: 3
    Dernier message: 15/03/2005, 10h01
  2. [Plugin][Débutant] Lancement d'une appli Java avec un plugin
    Par antares24 dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 29/07/2004, 14h18
  3. [Executable] Executer une appli java facilement
    Par legend666 dans le forum Général Java
    Réponses: 7
    Dernier message: 13/06/2004, 12h21
  4. [Débutant][JNI]Erreur de chargement de dll
    Par Agifem dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 24/04/2003, 14h36
  5. [Appli][Autre language]dll-contenant form
    Par flash dans le forum Langage
    Réponses: 6
    Dernier message: 20/09/2002, 14h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo