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 :

[ATL] A propos de la déclaration d'une fonction


Sujet :

MFC

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 80
    Points : 50
    Points
    50
    Par défaut [ATL] A propos de la déclaration d'une fonction
    Bonjour à tous,
    je suis en train de m'initier aux applications ATL pour réaliser une extension très simple de windows, et je parcours donc plusieurs tutoriaux que je trouve sur internet.
    Je vois souvent ce type de déclaration pour une fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    STDMETHOD(GetCommandString)(UINT, UINT, UINT*, LPSTR, UINT);
    or on m'a toujours appri que les fonctions se déclaraient de la manière suivante :
    type_du_retour nom_fonction (arguments...)

    Je ne comprends pas cette synthaxe...

    Merci à vous
    a+

  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 : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    STDMETHOD est juste une macro, si tu regardes sa définition tu verras qu'au final ça donne une déclaration de fonction valide.

    C'est une macro qui a une définition différente en C et en C++, et qui sert si je me souviens bien à faire des "classes" qui fonctionnent de la même manière dans ces deux langages.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 80
    Points : 50
    Points
    50
    Par défaut
    Je ne comprends pas bien son utilité étant donné qu'en remplacant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    STDMETHOD(Initialize)(...)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    virtual HRESULT __stdcall Initialize(...)
    ca fonctionne également et ce n'est pas beaucoup plus contraignant et je trouve que ca coule plus de source

  4. #4
    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 : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Et bien si c'est un code C qui utilises ta classe, la seconde forme ne fonctionnera pas, puisqu'il s'agit de la définition de la macro version C++.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 80
    Points : 50
    Points
    50
    Par défaut
    mais alors dans quel cas utilise-t-on cette marco en C?

Discussions similaires

  1. [C#]Déclaration d'une fonction globale
    Par Raton dans le forum C#
    Réponses: 7
    Dernier message: 21/09/2013, 13h27
  2. Réponses: 2
    Dernier message: 23/05/2007, 15h05
  3. Réponses: 4
    Dernier message: 24/04/2007, 17h07
  4. déclaration d'une fonction static
    Par salseropom dans le forum C
    Réponses: 4
    Dernier message: 09/03/2007, 17h59
  5. Réponses: 2
    Dernier message: 11/01/2007, 00h28

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