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

C++ Discussion :

Passage de paramètre entre Java et C++


Sujet :

C++

  1. #1
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut Passage de paramètre entre Java et C++
    Bonjour,

    Aujourd'hui je suis confronté à la récupération de données provenant de Java et à leur utilisation dans C++.
    J'ai une variable de type jstring ( jni.h) qui me renvoie une chaine de caractères
    Je dois lui envoyer une chaine de caractère à analyser. J'ai ma chaine de caractère en const wchar_t*. Mon programme demande en entrée un jstring. J'ai compris que cette jstring ressemblait a la wstring de c++, mais mon compilateur n'accepte pas ce transcodage.
    Qulq'un peut il m'orienter vers une solution de transcodage c++<-> jstring.
    ce serait

  2. #2
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut Solution de transfert jstring <=> std::wstring
    J'ia trouvé la réponse sur le forum de Sun Java
    je vous donne le code correspondant
    déclaration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #include "jni.h"
    JNIEnv * env;
    pour le code j'ai une suite qui prend une string provenant de Forms, la convertit en wstring, puis en jstring, après l'appel de la fonction il renvoie un jstring qu'on ramène en std::wstring
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
      std::wstring InText;
      std::wstring OutText;
      wchar_t* s;
      BTagger_setup ();
      s = objStrConv.ambstowcs(RichEdit1->Text.c_str());
      InText.assign( s);
      objStrConv.StrFreeW( s);
      jstring jstr = env->NewString((jchar *)InText.c_str(), InText.length());
      jstring joutstr = WorkTagger( jstr);
      OutText.assign((wchar_t *)env->GetStringChars(joutstr, NULL));
    C'est bien accepté par le compilateur. J'ai un pb de techno maintenant à résoudre avant de donner le statut d'exécution
    à+

  3. #3
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut Outils de diagnostic sur les interfaces des DLL
    Bonjour,
    Pour vérifier le code dessus j'ai besoin d'un outil qui me permette de savoir pouquoi les appels aux primitives de la DLL sortent en Unresolved external. Ces appels sont "sous réserve de vérification" conformes à la pratique. J'en donne ci dessous une illustration.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    __declspec(dllexport) void BTagger_setup ()
    a+

  4. #4
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut Appel des codes en C
    Il en faut pas oublier que le name mangling réécrit les noms des fonctions à la compilation. et pour avoir un bon mapping entre les fonctions C native et les application C++ il faut que le prototype dans l'application appelante soit décrite comme une extern "C"
    Moyenant cette précaution, les uresolved external disparaissent.

  5. #5
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut Les machines virtuelle de Java
    Quand on utilise les fonctions prototypés dans jni.h, il faut avoir préalablement à l'exécution de la fonction avoir un objet de la classe JNIEnv cree par le new
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    JNIenv * env;
     
     
    env = new JNIenv;
    et aussi qu'il faut être relié à une machine virtuelle Java
    http://java.sun.com/docs/books/jni/h...oke.html#11202
    à+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Forms 6i] Passage de paramètres entre forms
    Par tmcgrady dans le forum Forms
    Réponses: 8
    Dernier message: 18/03/2006, 03h04
  2. Passage de paramètres entre page
    Par philou8 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/01/2006, 18h54
  3. passage de paramètre entre formulaire et état
    Par thufir hawat dans le forum IHM
    Réponses: 13
    Dernier message: 21/12/2005, 22h32
  4. [jsp][servlet]passage de paramètre entre deux frames
    Par alexandra_ape dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 29/06/2004, 11h14
  5. [Forms]Passage de paramètre entre Forms et Reports
    Par jack554 dans le forum Reports
    Réponses: 4
    Dernier message: 30/03/2004, 13h58

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