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

Java Discussion :

convertir une ligne c++ en java


Sujet :

Java

  1. #1
    Membre éclairé Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Par défaut convertir une ligne c++ en java
    Bonjour,

    je cherche à convertir cette ligne de code c++ en java

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    typedef int (*td_fn_LoadingProgress)(int,void*);
    Merci bcp

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    typedef + pointeur de fonction (si mes souvenirs ne me trompent pas) ? Cela ne va pas etre possible directement.

    Dans le pire des cas on devrait s'en sortir avec la creation d'un nouveau type mais il faudra aussi modifier le code ailleurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public interface FuncCpp {
      public int td_fn_LoadingProgress(int a, Object b);
    }
    ou une classe du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public class FuncCpp {
      public int td_fn_LoadingProgress(int a, Object b) {
         return 0; 
      }
    }
    Evidement avec des closures ca serait plus simple:
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Membre éclairé Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Par défaut
    je fais comment dans le cas de pointeur sur matrice ??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DcmData ** p_dcmdata;
     
    (*p_dcmdata)->DeleteAllElts();
    tel que DcmData est une classe, et DeleteAllElts est une méthode comprise dans cette classe.

    en java du moment qu'il n'ya pas de pointeurs je fais comment ?? j'ai déjà essayé
    mais ça marche pas ???????

  4. #4
    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
    Que veux tu dire par ça ne marche pas?
    Quel est l'erreur sortie?

  5. #5
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    J'ai dut mal a comprendre la question, d'ou ma reponse est probablement hors sujet mais je tente quand meme...

    Avec l'API Reflection, tu pourrais peut etre te sortir de cette situation.

    Tu px utiliser l'objet Method (qui est une "sorte de pointeur" et qui pointera vers une vrai methode d'une classe).

    Ensuite utilise invoke pour realiser l'appel.

    Code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class DcmData
    {
    	public void DeleteAllElts(int a, Object b)
    	{
    		System.err.println("J'efface les elements ?! "+a+" - "+b);
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    public class main
    {
    	public static void main(String[] args) throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException
    	{
    		// Methode normale
    		DcmData p_dcmdata = new DcmData();
    		p_dcmdata.DeleteAllElts(0, "toto");
     
    		// En utilisant une sorte de "pointeur" (je mets vraiment les guillemets en esperant correction).
    		DcmData ptr_dcmdata = p_dcmdata;
    		Method method_pseudo_ptr = p_dcmdata.getClass().getMethod("DeleteAllElts", int.class, Object.class);
    		method_pseudo_ptr.invoke(p_dcmdata, 0, "TOTO");
     
    	}
    }
    Mais bon ne sachant pas trop ton but je tappe vraiment au pif
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre éclairé Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Par défaut
    Citation Envoyé par sinok Voir le message
    Que veux tu dire par ça ne marche pas?
    Quel est l'erreur sortie?
    la ligne où je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    p_dcmdata.DeleteAllElts();
    est soulignée en rouge, la méthode n'est plus reconnue, cette ligne est aussi incorrecte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    p_dcmdata = new DcmData();

  7. #7
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Tu ne veux pas donner tout ton code (du moins la partie utile) car c'est difficile à comprendre.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre éclairé Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Par défaut
    Citation Envoyé par wax78 Voir le message
    J'ai dut mal a comprendre la question, d'ou ma reponse est probablement hors sujet mais je tente quand meme...
    ma question est la suivante :
    j'ai un objet déclaré en c++ de la sorte :
    les appel de l'objet sont bien évidemment de la sorte qu'il s'agit d'un pointeur sur matrice, en particulier les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    (*p_dcmdata)->DeleteAllElts();
    *p_dcmdata = new DcmData();
    je cherche à convertir ceci en java, et comme en java il n'y a pas notion de pointeur

  9. #9
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    C'est normal puisque tu as déclaré cela comme un tableau...

    Tu dois appeler la méthode sur un (ou plusieurs) élément(s) du tableau.



    Mais plus globalement, entre ce message et l'autre sur la libération de mémoire, j'ai l'impression que du cherche à coder en C++, mais en Java.

    En gros tu as l'habitude de faire "comme cela" en C++, et tu veux faire la même chose en Java.

    A mon avis c'est une grosse erreur, car malgré une syntaxe relativement proche, les concepts et les notions misent en place par les deux langages sont très différentes. Et ce qui est adapté à l'un ne l'est pas à l'autre...


    Tu ne devrais pas te poser la question de savoir comment "traduire" du C++ en Java !

    Tu devrais plutôt détailler ce à quoi tu veux aboutir (qu'est-ce que tu veux obtenir ?), et voir comment tu le ferais en Java.


    a++

  10. #10
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    J'ai l'impression pour ton problème que :

    Adiguba m'a précedé
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Membre éclairé Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Par défaut
    j'aurais aimé reprendre le code en java à zéro, sauf que malheureusement ça fait beaaaaaucoup de lignes de code, et trop peu de temps pour comprendre et ensuite reprendre.

    en tout cas merci beaucoup, et souhaitez moi bonne chance

  12. #12
    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
    Citation Envoyé par psycho_xn Voir le message
    j'aurais aimé reprendre le code en java à zéro, sauf que malheureusement ça fait beaaaaaucoup de lignes de code, et trop peu de temps pour comprendre et ensuite reprendre.

    en tout cas merci beaucoup, et souhaitez moi bonne chance
    Non mais explique la problématique (autrement qu'en parlant de pointeurs) sur ce point précis, on peut très bien te fournir une solution propre.
    Quel est le but de cette classe, que cherches tu à faire en termes logiques?

  13. #13
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Tu donnes l'impression d'essayer de retranscrire du code literallement. Tu perdras a mon avis plus de temps a essayer de retranscrire litteralement que tout analyser une bonne fois.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  14. #14
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    quel est ce besoin de traduction du code c++ en java? Ne serait-il pas plus judicieux de mettre une coque JNI autour de ton code c++ pour invoquer ton code c++ depuis java?

  15. #15
    Membre éclairé Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    quel est ce besoin de traduction du code c++ en java? Ne serait-il pas plus judicieux de mettre une coque JNI autour de ton code c++ pour invoquer ton code c++ depuis java?
    En fait après réflexion cette solution d'une interface JNI je pense que je vais l'adopter, je commence par me documenter pour voir comment ça marche


    Merci beaucoup

  16. #16
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par psycho_xn Voir le message
    on cherche à lire une image Dicom depuis une interface web
    Au lieu de réinventer la roue, as-tu vérifier qu'il n'existe pas déjà des librairies lisant le format dicom en java? Je pense par exemple à ceci (dicom toolkit) qui ressort en premier d'une recherche

    http://www.dcm4che.org/confluence/di...+DICOM+Toolkit

    Ensuite, si c'est juste la lecture d'un format de fichier, t'aura plus vite faire de recoder de 0 en java que de tenter de transcrire du code C++ qui sera illisible à l'arrivée.

  17. #17
    Membre éclairé Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Par défaut
    En fait après réflexion cette solution d'une interface JNI je pense que je vais l'adopter, je commence par me documenter pour voir comment ça marche


    Merci beaucoup

  18. #18
    Membre éclairé Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Par défaut
    Une toute dernière question :
    j'ai trouvé qu'il existe deux interfaces JNI/JNA, est-ce que l'appel du code C++ depuis Java sera possible s'il s'agit d'une applet, car je cherche à développer dans le web ??

  19. #19
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    non, charger du jni/jna depuis une applet est compliqué et nécessite l'installation des librairies propriétaires dans la machine du client.

Discussions similaires

  1. Convertir une ligne en polygone texturé
    Par JohnSmith dans le forum SDL
    Réponses: 5
    Dernier message: 21/03/2007, 18h46
  2. traçage d'une ligne en java
    Par guimen dans le forum Graphisme
    Réponses: 1
    Dernier message: 15/05/2006, 21h38
  3. Comment lancer une ligne de commande dans un processus en Java.
    Par doyouknow56 dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 13/05/2006, 11h55
  4. [APPLET] convertire une application JAVA en applet
    Par wickramben dans le forum Applets
    Réponses: 1
    Dernier message: 13/04/2006, 10h01

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