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

Langage C++ Discussion :

Question sur void*


Sujet :

Langage C++

  1. #1
    Membre très actif
    Homme Profil pro
    Second de cuisine
    Inscrit en
    Avril 2005
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Second de cuisine
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2005
    Messages : 193
    Par défaut Question sur void*
    Bonjour !
    Au risque d'en froisser beaucoup, (deja sur le chat cetais pas gai ^^)

    Voici la fonction que j'aimerais faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void WidgetFactory::call(void* widget)
    {
        // cherche dans _callback si key = widget
        // func();
    }
    Dans la classe WidgetFactory, j'ai ceci
    une map qui contient des pointeurs vers des fonctions, en revanche, comme je ne peux pas mettre un string pour la key, je pars sur un void*

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    map<void* /* key */, void* /* func */> _callback;
    J'ai tenté a tout hasard

    _callback[widget]();
    et ensuite
    _callback.find(widget)();

    Aucun des deux marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    D:\C++\projects\Client v2\Factories\WidgetFactory.cpp|20|error: '((WidgetFactory*)this)->WidgetFactory::_callback.std::map<_Key, _Tp, _Compare, _Alloc>::find [with _Key = void*, _Tp = void*, _Compare = std::less<void*>, _Alloc = std::allocator<std::pair<void* const, void*> >](((void* const&)((void* const*)(& widget)))).std::_Rb_tree_iterator<_Tp>::operator-> [with _Tp = std::pair<void* const, void*>]()->std::pair<void* const, void*>::second' cannot be used as a function|
    Un cookie pour celui qui trouve l'erreur x)
    merci, bonne nuit ^^

  2. #2
    Membre émérite
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Par défaut
    Bonjour,

    C'est terrible les têtes de mules

    Ils ont du t'expliquer sur le tchat pourquoi void* c'était le mal. Alors si tu as envie de mettre ça en clé dans une map, oublie et comprend comment fonctionne une map plutôt que de te contenter de contourner l'erreur de compilation pour générer des conneries à l'exécution.

    Ensuite, plutôt que de t'obstiner avec les void* qui te mèneront dans le mur même si ça compile, apprend à te servir des méthodes virtuelles.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    étant en C++, l'utilisation du void* est quasi inutile et toujours évitable. Au profit d'interface et méthodes virtuelles, comme indiqué ci-dessus.
    Si tu veux malgré tout utilisé un void comme valeur, tu devras obligatoirement le caster, surtout pour utiliser l'opérateur ()..
    Par contre vouloir utiliser un void* comme clé, je ne trouve pas de mot pour exprimer à quel point ça me semble stupide.

    ::second' cannot be used as a function
    Et tu as de la chance, le message est on ne peut plus clair.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  4. #4
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    Décidément, c'est de pire en pire...
    On était parti sur le chat d'un super objet parent à boost::any puis à void* puis maintenant à un void* comme clé dans une map

    Tu essaies de faire les choses à ton idée, sans te préoccuper des spécificités du langages et comment il faudrait faire les choses correctement. Le C++ est un langage très permissif qui va pas compenser les erreurs des développeurs. Programmer n'importe comment peut peut-être fonctionner sur d'autres langages mais pas en C++. Je t'ai donné également un lien vers le blog d'Emanuel Deloget pour que tu puisses comprendre pourquoi les super objets ne sont pas la meilleure solution. Mais 2 pages, c'est trop à lire ?

    Mon conseil : arrête le C++
    Tu finiras dégoûté dans quelques temps parce que tu n'arrives pas à faire ce que tu veux et quand ça fonctionne (de temps en temps), ça t'a pris 2 jours pour faire 3 lignes de code. Tu finiras par passer à autre chose en pensant que le C++ est un langage trop compliqué, inefficace, bugé, non productif, etc.

  5. #5
    Membre très actif
    Homme Profil pro
    Second de cuisine
    Inscrit en
    Avril 2005
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Second de cuisine
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2005
    Messages : 193
    Par défaut
    Pas de fonctions pour :: second?
    Jai vu une source qui lutilisait!
    Bon je vais changer mon code plus tard en utilisant un string, void*
    cette solution marche bien
    Je vais jeter un coup doeils aux fonctions virtuelles a loccasion egalement.
    Ensuite petit coup de gueule pour gb.
    Je trouve vraiment dommage, avec tout le respet que jai pour les gens comme toi qui aident les debutant ou pas a avancer dans leurs codes, que tu sois obliger de me lincher inutilement et de me conseiller darreter le c++.
    Je programme pour le plaisir, quand jai du temps. Mon job et ma vie personnelle me pompent deja 9/10 de mes semaines. Bref.
    De plus, dans mon metier letraide est la cle de la reussite, ainsi que des expliquations imagees.
    Si mon apprenti me demande comment faire une pate brisee professionnelle, je vais pas lui dire va lire le bouquin sur la conception des pates par mr. Chef-x. Non je vais lui expliquer les ingredients, a quoi ils servent, commet melanger. Et surtout, je vais lui montrer!
    Je vois pas linteret de me linker un blog ou le mec philosophe sur des patrons de conceptions alors que jai deja un peu de mal a dechifrer un code.
    Et oui jai pas lu entierement les pages, si je nai pas un exemple concret, je ne comprendrais pas.
    Si tu veux tu viens dans mon domaine, et on va voir comment tu vas reagir quand tu vas me demande comment faire un truc et que jvais te dire de te debrouiller avec un livre.
    Tu as une connaissance immense, je suis novice, jen fais qua ma tete, ces normal.
    Si tu compte pas maider alors essaye meme pas de repondre, cest simple.
    Ceci dit, merci quand meme pour les messages avant ce dernier.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Si je me mets à faire de la cuisine et remplacer le sel par du sucre dans une recette donnée, que l'on me dit que c'est pas la bonne méthode et que je m'enterre à cette pratique... il ne faut pas venir se plaindre de la personne qui m'a prévenu.

    N'en déplaise à certains, mais programmeur c'est aussi un vrai métier. Même si tout le monde est susceptible de pouvoir faire un hello world dans son coin..

    Apparemment ils ont déjà eu cette discussion avec toi sur le chat, je vois pas à quel genre de réponse tu t'attendais en postant la même question sur le forum cette fois ?

    Si tu n'acceptes pas les réponses et continues à n'en faire qu'à ta tête en ignorant les solutions des personnes dont c'est le métier, et qu'en plus tu te plains de leurs réponses, je vois pas ce qu'on peut pour toi...
    Ici c'est un forum communautaire et tous sont bénévoles, nous ne proposerons quasiment jamais de code tout fait ou d'exemples entiers.
    Le net regorge de ces codes bateau, que l'on voit souvent ressurgir ici accompagné du fameux "ce code marche sur le site mais pas chez moi", après un copier/coller d'un morceau de code qui
    - est vieux de 30 ans et obsolète 3 fois
    - est incomplet parce qu'il manque un morceau jugé inutile par l'utilisateur qui l'a copié
    - est de toute évidence tiré d'un exemple de "code à ne pas reproduire", mais comme c'était sur un site anglais, il n'a pas pris le temps de le lire
    Pas de fonctions pour :: second?
    Jai vu une source qui lutilisait!
    Choisis ton camp parmi les 3 ci-dessus.

    Oui "Google is your friend" est une vraie réponse dans des cas triviaux, on peut aussi employer la version plus ancienne "aide-toi et le ciel t'aidera".

    Je suis très heureux pour toi que tu saches faire des pâtes brisées, mais à priori c'est pas le sujet du site.

    Je vois pas linteret de me linker un blog ou le mec philosophe sur des patrons de conceptions alors que jai deja un peu de mal a dechifrer un code.
    Et oui jai pas lu entierement les pages, si je nai pas un exemple concret, je ne comprendrais pas.
    Apprends à marcher avant de courir.
    Je dirais aussi, apprendre à faire du vélo avec les roulettes avant de faire le tour de France. Mais si l'on te présente le vélo, il ne faut pas attendre qu'on pédale à ta place.

    je suis novice, jen fais qua ma tete, ces normal.
    Je ne vois aucune relation de cause à effet là-dedans.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  7. #7
    Membre expérimenté Avatar de Rewpparo
    Homme Profil pro
    Amateur
    Inscrit en
    Décembre 2005
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 170
    Par défaut
    Je suis nouveau sur le forum, donc pas forcément blasé, je vais donc tenter une explication.
    Ici le problème n'est pas que ton code ne marche pas, c'est toute ta manière de penser ta solution qui est fausse. Et vu que tu n'explique pas le problème, ca met en mode WTF.
    Je vais supposer que ton problème est le suivant : tu veux, étant donné un widget, executer une action qui est typique de ce widget.
    C'est tout l'objet des fonctions virtuelles en C++. Rapide tuto. Ne connaissant pas ton niveau en C++, je vais le supposer débutant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class Widget
    {
    public:
       virtual void call()=0;
    };
     
    class TextBox : public Widget
    {
    public:
       virtual void call()
       {
          //Excuter une action pour les textbox
       }
    };
    L'idée est de regrouper tes widgets par types ayant des propriétés similaires. La classe Widget dispose d'une fonction call(), qui n'est pas implémentée mais sert juste d'interface. En dérivant la classe Widget pour créer une classe TextBox, tu implémentes cette fonction call d'une manière qui est typique de TextBox.
    Pour appeller la fonction, il suffit d'appeller la méthode call d'un pointeur widget, et ca appellera automatiquement l'implémentation que tu as mis dans TextBox.
    Plus d'infos sur la FAQ

    Mais il faudra surement adapter toute ta facon de penser ton programme au C++. La tu essaies de faire rentrer un carré dans un cercle. Le C++ n'est juste pas fait pour être utilisé comme tu le fais. C'est réalisable, mais tu as intérêt a fucking bien savoir ce que tu fais, parceque ta méthode est crade à mort, et il y a des moyens BEAUCOUP plus simples d'arriver au résultat équivalent.

    Si tu n'as pas compris mes explications, c'est qu'il faut vraiment que tu te replonges dans des tutos/bouquins, et que tu apprennes le langage avant de te lancer dans quelque chose qui est au dessus de tes capacités. En attendant, contente toi de Hello world ou d'exos ciblés pour apprendre une feature du langage. Te lancer dans un système de GUI, ou même utiliser des systèmes de GUI sans connaitre les bases, c'est aller dans le mur.

    Ah et question d'attitude : Si ca fritte avec les membres, c'est que tu décris mal ton problème. Ton problème, c'est ce que tu veux que le code fasse, la fonction que tu souhaites le voir remplir, et qu'il ne fait pas. Dire que le problème c'est "mon code ne compile pas" et surtout refuser les solutions autres que celle que tu as envisagé, c'est irrespectueux envers les gens qui veulent t'aider. Surtout si, comme dans le cas actuel, ta solution est à chier et à jeter.

  8. #8
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    @DakM
    Je comprend ta frustration. Mon post avait pour but de te faire réagir.
    Que dirais tu si je disais que je veux faire un gâteau pour un mariage mais que j'ai aucune connaissance en pâtisserie. Tu me dirais sûrement d'apprendre les bases avant. Et si je réponds que c'est pas comme ça que je veux faire, tu me dirais probablement d'arrêter tout de suite la pâtisserie.
    Je te rassure, tu peux sans problème apprendre le C++. Par contre, ça se fera pas en 2 semaine. La programmation en général est quelque chose de compliqué et il faut des années pour apprendre. Comme le dit Bousk, développeur est un métier et comme ça n'a pas l'air d'être le tiens, ça demandera beaucoup d'efforts et de patience.
    Achète un bon livre sur le C++ (PPC++ de Stroustrup), fais les exercices, prend le temps de comprendre et d'expérimenter avant de faire tes propres programmes.

    Bon courage quand même

  9. #9
    Membre très actif
    Homme Profil pro
    Second de cuisine
    Inscrit en
    Avril 2005
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Second de cuisine
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2005
    Messages : 193
    Par défaut
    Merci Rawpparo
    Avant de lire ton message je suis allé voir un peu les fonctions virtuelles
    J'aurais pas le temps de tester mon code ce soir, mais apparement il ressemble au tiens!

    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
    17
    18
    19
    20
    21
    22
    class Widget
    {
        public:
            void SetDest(SDL_Surface* dst);
            void MouseOver();
            void MouseOut();
            virtual void Click();
            virtual void Draw();
            SDL_Rect* rect() { return _sandp; }
            /** Default destructor */
            virtual ~Widget();
            void* pointeurversfonction;
        protected:
            Widget(SDL_Rect* sandp, SDL_Surface* sprite);
            SDL_Surface* _sprite;
            SDL_Surface* _dest;
            SDL_Rect* _sandp;
            string clipkey;
            Clips* clips;
     
        private:
    };

    Et mon WFButton, est maintenant : public Widget
    Et d'apres la compilation, ca a l'air de plaire à code:blocks (beaucoup plus que les void*,void*

    tu veux, étant donné un widget, executer une action qui est typique de ce widget.
    C'est a peu pres ca.
    Imagine j'ai 50 boutons (classe WFButton, herite de Widget)
    Dans mon loop principal j'ai à un moment la gestion du click (où je clique !)
    Ca, ca marche, j'ai fais un test, jarrive a cliquer sur un bouton.
    En fait ce que j'essaye exactement de faire, c'est quand je crée le bouton, je puisse donner comme argument, un pointeur vers une fonction.
    Que ce pointeur reste en memoire dans une variable. de telle sorte que je puisse appeler ca quand je clique sur le bouton en question

    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
    17
    18
    19
    20
     
    // 1: Creation du bouton
    WidgetFactory::CreateButton(string name, SDL_Rect* sandp, SDL_Surface* background);
     
    // 2: J'ajoute le bouton à mon layer
    void append(Widget cw, void* mafonction); // cw = le bouton merci à bousk & rewpparo ; void* pointeur vers ma fonction
    // le deuxieme argument permet a la fonction de faire quelque chose qui ressemble à ca:
    cw->pointeurversfonction = mafonction;
     
    // 3. Je clique sur un bouton
    void Widget::Click()
    {
        pointeurversfonction();
    }
     
    // 4. Dans un autre fichier, j'aurais pleins de fonctions qui seront appelées par un seul bouton !
     
    fonction1(); // bouton Ok
    fonction2(); // bouton cancel
    etc :)
    De plus,
    http://www.parashift.com/c%2B%2B-faq...o-members.html
    Functionoids ?
    Functor ?
    Ca a l'air interessant non ?

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Ce qu'il te faut c'est un pointeur sur fonction ou un foncteur.

    Un pointeur sur fonction simple sera défini comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    typedef typeretour(*functPtr)(parametres);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class ... {
    ...
    void doCallback();
    funcPtr* maFonction;
    };
     
    void class::doCallback()
    {
     (*maFonction)(parametres);
    }
    Un foncteur c'est en gros une classe qui englobe un pointeur de fonction et surcharge l'opérateur ()
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  11. #11
    Membre très actif
    Homme Profil pro
    Second de cuisine
    Inscrit en
    Avril 2005
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Second de cuisine
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2005
    Messages : 193
    Par défaut
    Je vais finir de corriger ma classe cette nuit avec ca.
    dans ton code, c'est plutot


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    void doCallback();
    typeretour* maFonction;
    };
    et non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    void doCallback();
    funcPtr* maFonction;
    };
    C'est bien ca?

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Voyons ce que tu proposes si ma fonction retourne un int et ne prend aucun paramètres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    typedef int(*funcPtr)();
    void doCallback();
    int* maFonction;
    };
    Ce que j'ai écris maintenant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    typedef int(*funcPtr)();
    void doCallback();
    funcPtr* maFonction;
    };
    A ton avis quelle écriture est correcte ?
    Est-ce que int* maFonction peut faire référence à une fonction ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  13. #13
    Membre expérimenté Avatar de Rewpparo
    Homme Profil pro
    Amateur
    Inscrit en
    Décembre 2005
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 170
    Par défaut
    Tu peux utiliser un pointeur vers une fonction, mais une façon encore plus C++ de faire ca c'est de mettre la fonction en question directement dans la classe.
    Tu as une classe Widget qui a une fonction click, une autre classe WFButton qui dérive de Widget, et une classe WFBoutonStart qui implémente click pour effectuer l'action en question, en l'occurence démarer un truc.

    Ce comportement, c'est le polymorphisme, et c'est la meilleure facon de faire, avant d'aller taper dans les pointeurs de fonctions qui sont vraiment je pense pour des utilisations beaucoup plus spécifiques. Par exemple, si tu créé tes panel de GUI à partir de scripts externes, dériver outrageusement peut complexifier le code, et les pointeurs de fonctions seront plus indiqués. Mais dans le jeu vidéo (je vois que tu utilises SDL), les panels sont souvent créés directement en code, donc la dérivation te simplifiera la vie.

  14. #14
    Membre très actif
    Homme Profil pro
    Second de cuisine
    Inscrit en
    Avril 2005
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Second de cuisine
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2005
    Messages : 193
    Par défaut
    Citation Envoyé par Bousk Voir le message
    Voyons ce que tu proposes si ma fonction retourne un int et ne prend aucun paramètres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    typedef int(*funcPtr)();
    void doCallback();
    int* maFonction;
    };
    Ce que j'ai écris maintenant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    typedef int(*funcPtr)();
    void doCallback();
    funcPtr* maFonction;
    };
    A ton avis quelle écriture est correcte ?
    Est-ce que int* maFonction peut faire référence à une fonction ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    typedef int(*funcPtr)();
    void doCallback();
    funcPtr* maFonction;
    };
    C'est bien ca?

  15. #15
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par DakM Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    typedef int(*funcPtr)();
    void doCallback();
    funcPtr* maFonction;
    };
    C'est bien ca?
    Et bien, oui, puisque c'est mon code initial.

    Mais comme dit plus haut, l'utilisation d'interfaces pourrait être plus simple.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  16. #16
    Membre très actif
    Homme Profil pro
    Second de cuisine
    Inscrit en
    Avril 2005
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Second de cuisine
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2005
    Messages : 193
    Par défaut
    Ca marche niquel
    Merci !

Discussions similaires

  1. question sur le type "void *"
    Par ChriGoLioNaDor dans le forum C++
    Réponses: 4
    Dernier message: 10/02/2006, 11h27
  2. Quelques questions sur le TWebBrowser...
    Par CorO dans le forum Web & réseau
    Réponses: 3
    Dernier message: 17/01/2003, 21h23
  3. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/10/2002, 08h45
  4. Réponses: 2
    Dernier message: 11/08/2002, 21h27
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

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