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 :

Comment definir un string java en c++


Sujet :

C++

  1. #1
    Membre confirm�
    Inscrit en
    D�cembre 2004
    Messages
    95
    D�tails du profil
    Informations personnelles :
    �ge : 64

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 95
    Par d�faut Comment definir un string java en c++
    Slt

    Je developpe avec c++ et je dois faire appel a une dll (dont je n'ai pas les sources) mais voici l'appel fait a cette dll en java :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
      Public ststic void initialise(int i, String s, String s1, boolean flag)
      {
         if... blabla
         .....
         .....
     
         int j = initialise(i, s1, flag)   // ceci est l'appel a la function de la dll

    maintenant comment faire la m�me chose en c++ ??

    Un petit exemple serait bienvenu

    Merci et bonnes fetes a tous


    [Balises CODE rajout�es par Loulou24, merci d'y penser � l'avenir]

  2. #2
    Membre exp�riment�
    Profil pro
    Inscrit en
    Ao�t 2003
    Messages
    247
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 247
    Par d�faut
    Met les balise codes, soit plus pr�cis, relis toi, etc.
    Et je te r�pondrais avec plaisir.


    Pour l'instant, tout ce que je peut te dire, c'est que tu nous a montr� une d�finition de fonction, et non un appel � une fonction li�e dynamiquement.
    En passant, ca m'�tonnerais que Java puisse faire un appel � une DLL. (mais peut-�tre ai-je tord.)

  3. #3
    Membre �prouv�
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    75
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 75
    Par d�faut
    Salut,

    Pour faire un appel � ta DLL, tu dois passer par JNI.
    JNI te permet d'appeler des m�thodes �crites en C++ et c'est via le C++ que tu pourras appeler ta DLL.

  4. #4
    Membre confirm�
    Inscrit en
    D�cembre 2004
    Messages
    95
    D�tails du profil
    Informations personnelles :
    �ge : 64

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 95
    Par d�faut suite
    Sans entrer dans les d�tails, en java il y a aussi la fonction
    loadlibray(nom de la dll).

    Donc j'ai une dll en c++, qui est appel�e par java.

    Le hic, est que dans java un des parametres est String et pass� � la dll,
    (String qui vient de java.lang.string)

    Question, comment definit-on cele en c++ ?

    Le code est long mais je vais le couper afin de vous fournir un exemple de chargement de dll, d'appel des functions en java.

    Je crois avoir lu lu quelque part qu'il existe une classe string en C... equivalente a celle de java.lang.string

    Merci

  5. #5
    Membre exp�riment�
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    150
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 150
    Par d�faut
    Java n'envoi pas "String" a ta DLL, le JM doit caster le String soit en char * soit en autre chose...... Non ? Ou je me trompe ?

  6. #6
    Membre exp�riment� Avatar de BertrandA
    Inscrit en
    Ao�t 2003
    Messages
    170
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2003
    Messages : 170
    Par d�faut
    Extrait de thinking in Java concernant JNI :
    http://bruce-eckel.developpez.com/li...aduction/tij2/
    Manifestement il faut d�clarer un wrapper sur la m�thode, qui permet � une moulinette en ligne de commande de g�n�rer un fichier d'ent�te C ou C++.
    Pas franchement trivial, mais �a fait le boulot tout seul.

  7. #7
    Membre confirm�
    Inscrit en
    D�cembre 2004
    Messages
    95
    D�tails du profil
    Informations personnelles :
    �ge : 64

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 95
    Par d�faut re
    Citation Envoy� par mtopoloff
    Java n'envoi pas "String" a ta DLL, le JM doit caster le String soit en char * soit en autre chose...... Non ? Ou je me trompe ?
    ??? c'est justement le cast que je cherche, j'ai fait un char pointeur et boum, et aussi avec std::string

    Je ne comprends pas comment passer correctement l'argument � la function

    Merci

  8. #8
    Membre confirm�
    Inscrit en
    D�cembre 2004
    Messages
    95
    D�tails du profil
    Informations personnelles :
    �ge : 64

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 95
    Par d�faut
    Citation Envoy� par BertrandA
    Extrait de thinking in Java concernant JNI :
    http://bruce-eckel.developpez.com/li...aduction/tij2/
    Manifestement il faut d�clarer un wrapper sur la m�thode, qui permet � une moulinette en ligne de commande de g�n�rer un fichier d'ent�te C ou C++.
    Pas franchement trivial, mais �a fait le boulot tout seul.
    Oups.. t'a pas plus compliqu� ??? bon je vais essayer et je te tiens au courant.

    Merci

  9. #9
    Membre confirm�
    Inscrit en
    D�cembre 2004
    Messages
    95
    D�tails du profil
    Informations personnelles :
    �ge : 64

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 95
    Par d�faut
    Citation Envoy� par BertrandA
    Extrait de thinking in Java concernant JNI :
    http://bruce-eckel.developpez.com/li...aduction/tij2/
    Manifestement il faut d�clarer un wrapper sur la m�thode, qui permet � une moulinette en ligne de commande de g�n�rer un fichier d'ent�te C ou C++.
    Pas franchement trivial, mais �a fait le boulot tout seul.
    Hmmmm, apr�s avoir lu la doc, il faut refaire la dll mais je n'ai pas les sources de cette dll.... as-tu une autre id�e ?

    Merci

  10. #10
    Membre exp�riment� Avatar de BertrandA
    Inscrit en
    Ao�t 2003
    Messages
    170
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2003
    Messages : 170
    Par d�faut
    Il ne s'agit pas de recompiler la DLL.
    Si tu disposes des sources Java et que ce programme fonctionne, utilise JavaH avec les param�tres ad�quats pour g�n�rer l'ent�te C++ : tu obtiendras ainsi le prototype des fonctions de la DLL utilis�es par le programme Java.

  11. #11
    Membre confirm�
    Inscrit en
    D�cembre 2004
    Messages
    95
    D�tails du profil
    Informations personnelles :
    �ge : 64

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 95
    Par d�faut
    Citation Envoy� par BertrandA
    Il ne s'agit pas de recompiler la DLL.
    Si tu disposes des sources Java et que ce programme fonctionne, utilise JavaH avec les param�tres ad�quats pour g�n�rer l'ent�te C++ : tu obtiendras ainsi le prototype des fonctions de la DLL utilis�es par le programme Java.
    quand je fais javah sur le fichier .class il ne me genere aucune function,
    juste le prototype de la classe

  12. #12
    Membre exp�riment� Avatar de BertrandA
    Inscrit en
    Ao�t 2003
    Messages
    170
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2003
    Messages : 170
    Par d�faut
    quand je fais javah sur le fichier .class il ne me genere aucune function, juste le prototype de la classe
    : Euh... Et �a ressemble � quoi ? Tu peux poster le r�sultat g�n�r� ?

  13. #13
    Membre confirm�
    Inscrit en
    D�cembre 2004
    Messages
    95
    D�tails du profil
    Informations personnelles :
    �ge : 64

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 95
    Par d�faut
    Citation Envoy� par BertrandA
    quand je fais javah sur le fichier .class il ne me genere aucune function, juste le prototype de la classe
    : Euh... Et �a ressemble � quoi ? Tu peux poster le r�sultat g�n�r� ?
    demain je vais poster un exemple de code java, d'une dll et de c++

    ainsi ce sera plus clair pour la reponse et question

    merci

  14. #14
    Membre confirm�
    Inscrit en
    D�cembre 2004
    Messages
    95
    D�tails du profil
    Informations personnelles :
    �ge : 64

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 95
    Par d�faut besoin de repos
    Slt

    comment dire... la fatigue aidant, j'envoyais a javah le mauvais fichier et comme celui ci ne comportait aucune methode native ben il est normal que le resultat obtenu etait null mais en y envoyant le bon fichier alors oui il a generer un bon fivhier h

    avec entre autre :
    JNIEXPORT jboolean JNICALL Java_Read_LireFichier
    (JNIEnv *, jclass, jstring, jboolean)

    Donc, maintenant il ne me reste plus qu'a integrer cela a mon prg c++ et voir si cela marche....

    Mais bon ce sera pour l'an prochain la r�ponse...

    Je vous souhaite de bonnes fetes et pour les f�tard, n'oubliez pas BOB !!!!

Discussions similaires

  1. Le type sql "TEXT" comment le convertir en java String ?
    Par pounaid dans le forum Persistance des donn�es
    R�ponses: 2
    Dernier message: 12/06/2008, 09h52
  2. comment convertir un fichier xml en tableau de string (java)
    Par l'indien dans le forum XML/XSL et SOAP
    R�ponses: 6
    Dernier message: 27/02/2006, 21h00
  3. R�ponses: 2
    Dernier message: 23/01/2006, 15h51
  4. Comment sauver plusieurs String ?
    Par Speed41 dans le forum Langage
    R�ponses: 2
    Dernier message: 19/08/2004, 13h49
  5. comment connecter VC++ et (java ou VB)
    Par Tray dans le forum Langages de programmation
    R�ponses: 3
    Dernier message: 18/11/2002, 13h51

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