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] Remontée d'évenements DLL C++ vers Java


Sujet :

Entrée/Sortie Java

Vue hybride

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 93
    Par défaut [JNI] Remontée d'évenements DLL C++ vers Java
    Bonjour

    J'utilise JNI pour dialoguer avec une DLL developpée en C++.

    L'appel de fonctions C++ à partir de l'appli Java fonctionne.

    Maintenant , je voudrais appeler une fonction JAVA depuis mons code C++ sur réception d'un evènement externe.

    Est-ce possible ?

    Ou est-ce que le doit appeler , a partir de Java ,une fonction de la DLL C++ qui ne retourne que sur réception de l'évenement externe ?

    Merci bcp.

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Il est tout à fait possible d'appeler une méthode Java depuis le code natif.

    Et plus généralement : Les spécifications de JNI.
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 93
    Par défaut
    Merci beaucoup

    J'avais déjà du voir cette doc mais sans trop comprendre
    car il n'y a aucun exemple .

    Je vais tenter de mettre ce mécanisme en place .

  4. #4
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Voici un petit exemple (en C) qui appel la méthode statique Java System.currentTimeMillis().

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // Récupération de la classe
    jclass clazz = (*env)->FindClass(env, "java/lang/System");
     
    // Récupération de l'identifiant de la méthode statique
    jmethodID methodId = (*env)->GetStaticMethodID(env, clazz, "currentTimeMillis", "()J");
     
    // Appel de la méthode statique
    jlong time = (*env)->CallStaticLongMethod(env, clazz, methodId);
    Remarque : je n'ai pas fait la gestion des erreurs.

    Pour la signature des méthodes cf Type Signatures.

    [EDIT] Correction d'erreurs dans le code [/EDIT]
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 93
    Par défaut
    Merci bcp

    Mais comment récupère t-on (ou connait-on) la variable env (JNIEnv* sans doute) ?

    Donc coté appli Java , il n'y aurait qu'a déclarer une méthode de classe (comme d'habitude ) ?

  6. #6
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Jette un coup d'oeil à Penser en Java : L'Interface Java Natif (JNI), tu y trouveras tout ce qu'il faut pour s'initier à JNI .
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/05/2009, 18h25
  2. [JNI]appel d'un dll en Java
    Par Aida dans le forum Entrée/Sortie
    Réponses: 22
    Dernier message: 23/01/2008, 16h19
  3. Remontée des évenements des fils vers les parents
    Par carodon2002 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 03/05/2007, 13h52
  4. [Windows]utiliser une dll c# en java
    Par dude666 dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 01/07/2005, 02h19
  5. [Conversion]Applet Java Vers Java Web Start
    Par robin206 dans le forum JWS
    Réponses: 2
    Dernier message: 20/04/2005, 09h28

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