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 :

La fonction DECLARE_DYNAMIC


Sujet :

MFC

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 10
    Par défaut La fonction DECLARE_DYNAMIC
    Bonjour,
    Quelqu'un peut me dire le rôle de cette fonction ? elle est membre de quelle classe ?

    Exemples où j'ai trouvé cette fonction :
    Eexemple 1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class CCustomEdit : public CEdit
    {
    	DECLARE_DYNAMIC(CCustomEdit)
     
    public:
    	CCustomEdit();
    	virtual ~CCustomEdit(); 
    .....

    Merci d'avance

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 10
    Par défaut
    ce que j'ai trouvé comme réponse

    DECLARE_DYNAMIC Ajoute la possibilité d'accéder aux informations d'exécution sur une classe d'objets

  3. #3
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    Par défaut
    Pour être précis, c'est une macro, utilisé par MFC pour son propre système de RTTI (run-time type identification). Il ne faut pas oublier que la bibliothèque fut inventée avant que ces mécanismes soient pleinement implémentés par la plupart des compilateurs, ce qui explique la duplication.

    Il y en a plusieurs degrés, chacun plus "fort" que le précédent. Les trois que je connais sont:
    • DECLARE_DYNAMIC et IMPLEMENT_DYNAMIC: Déclare et implémente l'override de la méthode virtuelle GetRuntimeClass() (et les variables statiques qui vont avec) qui permet de connaître le nom de la classe de tout objet l'implémentant, ainsi que savoir si une classe hérite d'une autre.
    • DECLARE_DYNCREATE et IMPLEMENT_DYNCREATE: Même chose, avec en plus un pointeur de fonction permettant de créer dynamiquement des objets de cette classe (une factory, quoi).
    • DECLARE_SERIAL et IMPLEMENT_SERIAL: Pareil avec en plus des fonctions de sérialisation (l'utilisateur doit quand même implémenter lui-même le code de sérialisation et désérialisation).

    Pratiquement tout sous MFC est au moins DYNAMIC, mais des choses commes les vues sont DYNCREATE (pour pouvoir créer de nouvelles vues pour un document) et les documents sont SERIAL (pour pouvoir facilement les charger/enregistrer dans un fichier).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. Fonction API
    Par margilb dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/07/2002, 11h11
  3. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19
  4. fonction printf
    Par ydeleage dans le forum C
    Réponses: 7
    Dernier message: 30/05/2002, 11h24
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

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