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

MFC Discussion :

[MFC] D�claration / initialisation de pointeur sur fonction


Sujet :

MFC

  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    Ao�t 2002
    Messages
    225
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 225
    Par d�faut [MFC] D�claration / initialisation de pointeur sur fonction
    Salut !

    J'aimerais impl�menter dans une classe une fonction permettant d'initialiser un pointeur sur une fonction de la fa�on suivante :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    MaClasse::SetFunction(void(*uneFonction)(CStringArray* aArr));
    Mon probl�me r�side dans la d�claration et l'utilisation de maFonction dans ma classe ...

    Dois je d�clarer une variable membre de type pointeur sur une fonction ? Dans ce cas j'aimerais savoir comment faire parce qu'� chaque fois que j'essaie j'obtiens une erreur me disant que le nom de la variable n'est pas correct. Pour info je d�clare ma variable de la fa�on suivante :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    public:
        void (*monPointeurFonction)(CStringArray* unArr);
    Si la solution pr�c�dente n'est pas possible, dois je proc�der en cr�eant une fonction membre que j'initialiserais avec l'adresse de maFonction ? Si oui comment faire ?

    D'avance merci de vos r�ponses

  2. #2
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    typedef void (__cdecl __cdecl * PROCGLOBALARRAY)(CStringArray* aArr);
    class MyClass
    {
      static void SetFunction(PROCGLOBALARRAY pfGlobal )
    { m_pfGlobal=pfGlobal;}
     
    static PROCGLOBALARRAY m_pfGlobal;
    };
     
    PROCGLOBALARRAY MyClass::m_pfGlobal=NULL;
     
    MyClass::SetFunction(MaClasse::fonction);
    note la fonction pass�e en argument doit etre statique a la classe.
    l'appel de la fonction:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    (*m_pfGlobal)(&monArray);

  3. #3
    Membre �clair�
    Profil pro
    Inscrit en
    Ao�t 2002
    Messages
    225
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 225
    Par d�faut
    Comment tu sais toutes ces choses ? Ton vrai pr�nom c'est pas Bjorn ou Richie par hasard ?

    Je plaisante

    Je sais pas si j'aurais le temps d'essayer aujourd'hui mais surement demain, en tout cas merci

  4. #4
    Membre �clair�
    Profil pro
    Inscrit en
    Ao�t 2002
    Messages
    225
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 225
    Par d�faut
    Excuse moi mais j'ai oubli� de pr�ciser une chose importante, la fonction que je dois passer en param�tre n'est pas statique � la classe mais c'est la fonction d'une autre classe, une sorte de callback quoi.

  5. #5
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    Citation Envoy� par Yellowmat
    Comment tu sais toutes ces choses ? Ton vrai pr�nom c'est pas Bjorn ou Richie par hasard ?

    Je plaisante

    Je sais pas si j'aurais le temps d'essayer aujourd'hui mais surement demain, en tout cas merci
    non malheursement j'ai pas les competences ,et pas le salaire
    Citation Envoy� par Yellowmat
    Excuse moi mais j'ai oubli� de pr�ciser une chose importante, la fonction que je dois passer en param�tre n'est pas statique � la classe mais c'est la fonction d'une autre classe, une sorte de callback quoi.
    ben alors c'est pas possible .
    si il te faut l'instance de la classe appel�e il faut passer l'adresse en argument de la fonction pointeur sur fonction ...

Discussions similaires

  1. R�ponses: 3
    Dernier message: 17/10/2013, 17h42
  2. R�ponses: 5
    Dernier message: 12/01/2005, 20h58
  3. pointeurs sur fonction en C++
    Par cemoi dans le forum C++
    R�ponses: 7
    Dernier message: 29/11/2004, 13h19
  4. [langage] Pointeur sur fonction
    Par Fanch.g dans le forum Langage
    R�ponses: 2
    Dernier message: 02/10/2004, 10h43
  5. Declaration de fonction retournant un pointeur sur fonction
    Par pseudokifaitladiff�rence dans le forum C
    R�ponses: 5
    Dernier message: 11/08/2003, 19h37

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