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 :

Pointeurs de fonctions non-static?


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3
    Par défaut Pointeurs de fonctions non-static?
    Bonjour,

    J'ai un bouton dans mon GUI quand lorsque je clique dessus, il fait un callback sur une fonction. Voila comment le callback est implémenté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    w->getEvents()["Activate"].add( new EventCallback(&((OpenGUI::EventCallback::EventCallbackFunc *)GameEngine::BTN_AddEntite) ) );
    Présentement BTN_AddEntite est une fonction static et cela me cause d'énorme problème, car je n'ai plus accès à tout ce qui est déclaré dans ma classe.

    J'aimerais savoir s'il y a moyen de changer BTN_AddEntite en une fonction non-static.

  2. #2
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    Salut, je ne connais pas OpenGUI, peut-etre qu'il accepte des pointeurs vers des fonctions membres, peut etre avec un autre objet que EventCallback ?
    Sinon il doit être possible de passer en parametre de la fonction static un pointeur vers un objet de ta classe. Pour peu que ta callback soit dans le scope de ta classe, tu récupère le pointeur dans ta fonction statique et tu peux effectuer sur l'objet toutes les fonctions privées... C'est comme ça qu'on se débrouille pour les callbacks Win32.

    A+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3
    Par défaut
    Effectivement il y a une autre fonction EventDelegate plustot que eventcallBack. Et ça fonctionne. Je peux passer une fonction membre.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/07/2013, 20h49
  2. typedef de pointeur de fonction non défini
    Par wilval dans le forum Débuter
    Réponses: 3
    Dernier message: 03/03/2010, 15h17
  3. Problème avec une fonction non static
    Par Coco4486 dans le forum C++
    Réponses: 17
    Dernier message: 09/05/2008, 11h49
  4. Fonction non static = code dupliqué ?
    Par titoine1978 dans le forum C++
    Réponses: 6
    Dernier message: 22/09/2007, 23h20
  5. Réponses: 20
    Dernier message: 21/06/2006, 20h44

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