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 :

[tableau] pointeur de fonction


Sujet :

C++

  1. #1
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut [tableau] pointeur de fonction
    salut

    j ai un membre pointeur de fonction declarer ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void (*m_pMyFunction)(UINT,UINT,LPVOID);
    j aimerais declarer un tableau qui contient plusieurs fois ce pointeur de fonction. comment je le declare ?

    OU mieux un conteneur genre Vector qui pourrais contenir des pointeurs de fonction

    merciii

  2. #2
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par ZaaN
    salut

    j ai un membre pointeur de fonction declarer ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void (*m_pMyFunction)(UINT,UINT,LPVOID);
    j aimerais declarer un tableau qui contient plusieurs fois ce pointeur de fonction. comment je le declare ?

    OU mieux un conteneur genre Vector qui pourrais contenir des pointeurs de fonction

    merciii
    typedef si tu veux etre lisible.

    void (*m_pMyFunction[10])(UINT, UINT, LPVOID), std::vector<void (*)(UINT,UINT,LPVOID)> si tu ne le veux pas.

  3. #3
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    me basant sur la proposition de vecteur de JM-B

    j ai defini ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    typedef struct{
    	void (*m_pFnct)(UINT,UINT,LPVOID);
    	LPVOID m_lParam;
    			}FnctAndParam;
     
    std::vector<FnctAndParam>;
    c est a dire que c 'est un vecteur qui contient pour chaque entrée, une structure composé d un pinteur de fonction additionné d un pointeur void.

    mais je suis incapable de compiler... -->
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    monfile.h(106): fatal error C1001: ERREUR INTERNE DU COMPILATEUR
            (fichier du compilateur 'msc1.cpp', ligne 2708) 
             Choisissez la commande Support technique du menu ? (Aide) de Visual C++ 
             ou ouvrez le fichier d'aide du Support technique pour plus d'informations
    help please

  4. #4
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Reduit le code pour avoir encore l'erreur mais sans rien d'inutile (et sans entetes de Windows si tu veux avoir une chance que je te reponde) et poste le. Une erreur interne du compilateur, c'est une erreur du compilateur... ca peut etre du a du code correct comme du code incorrect.

  5. #5
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    monfile.h(16): error C2061: erreur de syntaxe*: identificateur 'UINT'


    sur le premier champs de la structure

  6. #6
    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
    Citation Envoyé par ZaaN
    monfile.h(16): error C2061: erreur de syntaxe*: identificateur 'UINT'


    sur le premier champs de la structure
    Forcément si tu enlèves windows.h... Le but est de garder un code qui compile (genre remplace UINT par unsigned int) tout en gardant l'erreur

  7. #7
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    lol...


    bon j ai remplacer les type win par des type c++ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	typedef struct{
    		void (*m_pFnct)(int _p1,int _p2,void* _p3);
    		void* m_lParam;
    					}FnctAndParam;
     
    	std::vector<FnctAndParam>;
    mais je retombe sur l erreur interne du compilo...

    ce code est le seul constituant d une classe, donc je ne peux rien enlever de plus.

  8. #8
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    manque le nom de la variable... :-)

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

Discussions similaires

  1. tableau de pointeur de fonction
    Par exhortae dans le forum C
    Réponses: 2
    Dernier message: 31/12/2007, 12h33
  2. [BCB6]Tableau de pointeurs sur fonctions
    Par rtg57 dans le forum C++Builder
    Réponses: 6
    Dernier message: 06/10/2006, 20h49
  3. Tableau de pointeur de fonction
    Par Gryzzly dans le forum C
    Réponses: 7
    Dernier message: 31/12/2005, 10h47
  4. Tableau de pointeurs de fonctions
    Par Alp dans le forum C++
    Réponses: 7
    Dernier message: 29/10/2005, 13h19

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