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 :

erreur C2664 : pointeur sur fonction


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par d�faut erreur C2664 : pointeur sur fonction
    bonjour

    voila j'ai donc un pb avec les pointeurs sur fonction.
    J'ai commenc� par d�finir le type suivant :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    typedef void (*fcnWrite)(std::string strMessage,int nType);
    puis j'ai ensuite cr�� la classe suivante :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    class __declspec(dllexport) CLogger
        {
        private:
            fcnWrite    m_pWrite;
     
       .....................................
     
        // Sets
        public:
            void SetWriteFunction(fcnWrite Write);
     
        };
    la m�thode SetWriteFunction affecte tout b�tement la fonction pass� en param�tre � la variable membre "m_pWrite"


    voici comment j'utilise la classe :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    void CTestUtilsDlg::OnOk()
    {
        CLogger log;
        log.SetWriteFunction(Write);
    }
    avec pour m�thode Write suivante :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    void CTestUtilsDlg::Write(std::string strMessage, int nType)
    {
        CString test = strMessage.c_str() ;
        m_edittest.SetWindowText(test);
    }

    Enfin voici l'erreur qui est g�n�r�e :
    C:\sebastien\project\testUtils\testUtilsDlg.cpp(182) : error C2664: 'SetWriteFunction' : cannot convert parameter 1 from 'void (class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int)' to 'void (__cdecl *)(class
    std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int)'
    None of the functions with this name in scope match the target type
    est ce quelqu'un saurait d'o� cela vient ? car moi je suis compl�tement perdu la :s

  2. #2
    R�dacteur
    Avatar de Laurent Gomila
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par d�faut
    Les pointeurs sur fonctions membres et les pointeurs sur fonctions libres (ou membres statiques) n'ont pas le m�me type et sont incompatibles. Voir la FAQ C++ pour plus de d�tails (section 5).

  3. #3
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par d�faut
    ah oki*
    dsl d'avoir d�ranger :s

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 4
    Dernier message: 15/07/2011, 13h04
  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