Bonjour,
je cherche à convertir cette ligne de code c++ en java
Merci bcp
Code : Sélectionner tout - Visualiser dans une fenêtre à part typedef int (*td_fn_LoadingProgress)(int,void*);
Bonjour,
je cherche à convertir cette ligne de code c++ en java
Merci bcp
Code : Sélectionner tout - Visualiser dans une fenêtre à part typedef int (*td_fn_LoadingProgress)(int,void*);
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 :
ou une classe du genre :
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); }
Evidement avec des closures ca serait plus simple:
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; } }
Merci de penser au tagquand 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
je fais comment dans le cas de pointeur sur matrice ??
tel que DcmData est une classe, et DeleteAllElts est une méthode comprise dans cette classe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 DcmData ** p_dcmdata; (*p_dcmdata)->DeleteAllElts();
en java du moment qu'il n'ya pas de pointeurs je fais comment ?? j'ai déjà essayé
mais ça marche pas ???????
Code : Sélectionner tout - Visualiser dans une fenêtre à part DcmData[] p_dcmdata;
Que veux tu dire par ça ne marche pas?
Quel est l'erreur sortie?
la ligne où je metsest 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.DeleteAllElts();
Code : Sélectionner tout - Visualiser dans une fenêtre à part p_dcmdata = new DcmData();
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
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++
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); } }Mais bon ne sachant pas trop ton but je tappe vraiment au pif
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"); } }![]()
(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
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 DcmData ** p_dcmdata;je cherche à convertir ceci en java, et comme en java il n'y a pas notion de pointeur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 (*p_dcmdata)->DeleteAllElts(); *p_dcmdata = new DcmData();![]()
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
Partager