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++Builder Discussion :

#pragma dans une macro


Sujet :

C++Builder

  1. #1
    Membre régulier
    Inscrit en
    Août 2010
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 123
    Points : 93
    Points
    93
    Par défaut #pragma dans une macro
    Bonjour à tous,

    je ne pense que ce soit possible avec C++Builder (XE2) car je n'ai rien trouvé sur le net, mais j'ai vu qu'on pouvait le faire avec Visual Studio.
    http://msdn.microsoft.com/en-us/library/d9x1s805.aspx

    The compiler also supports the __pragma keyword, which has the same functionality as the #pragma directive, but can be used inline in a macro definition.

    Je voudrais avoir ce genre de macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #define REGISTER_STARTUP(class) static void Reg_##class() \
           { \
           class::CreateHandle(); \
           } \
           #pragma startup Reg_##class

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Je suppose que tu as testé ta macro et que tu as obtenu un message d'erreur, lequel ?

    J'ai écrit ceci pour un Register de Class automatique dans le fichier H


    Fichier H
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class toto
    {
    private:
      static bool Created;
    public:
      static bool CreateHandle();
    };
    bool toto::Created = toto::CreateHandle();
    Fichier CPP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    /*static*/ bool toto::CreateHandle()
    {
      ShowMessage("toto est là !");
      return true;
    }
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre régulier
    Inscrit en
    Août 2010
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 123
    Points : 93
    Points
    93
    Par défaut
    ah tiens c'est vraiment pas bête !

    Je vais vois ce que je peux faire avec ça. Merci !

  4. #4
    Membre chevronné Avatar de nirgal76
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2007
    Messages
    905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 905
    Points : 2 127
    Points
    2 127
    Par défaut
    #pragma startup fonctionne sous XE2, le problème doit être plutôt le fait d'avoir #pragma à l'intérieur d'un #define.

    il y a une autre syntax à
    "#pragma argument"
    qui est
    _prama(argument)
    qui permet de remédier à celà mais elle ne fonctionne qu'avec les compilateurs c99 or c++0x. A tester sous XE2, je n'ai pas le courage de le faire

  5. #5
    Membre régulier
    Inscrit en
    Août 2010
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 123
    Points : 93
    Points
    93
    Par défaut
    Merci nirgal,

    j'avais testé mais ça ne fonctionne pas.

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

Discussions similaires

  1. newline dans une macro procédure
    Par Puyi dans le forum C
    Réponses: 9
    Dernier message: 19/04/2006, 16h01
  2. Exécuter une sub d'un module dans une macro
    Par pnoel-bi dans le forum Access
    Réponses: 3
    Dernier message: 03/03/2006, 10h39
  3. Code asm dans une macro C
    Par progfou dans le forum C
    Réponses: 11
    Dernier message: 01/03/2006, 18h50
  4. Comment insérer une macro excel dans une macro word?
    Par max2245 dans le forum VBA Word
    Réponses: 15
    Dernier message: 07/01/2006, 17h44
  5. pb dans une macro excel VB
    Par syl221 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/10/2005, 17h29

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