Précédent   Forum du club des développeurs et IT Pro > C et C++ > Outils pour C & C++ > C++Builder
C++Builder Environnement de développement RAD C++Builder. Avant de poster -> F.A.Q C++Builder, Sources C++Builder
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 14/11/2012, 09h31   #1
PocoYote
Membre du Club
 
Inscription : août 2010
Messages : 74
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 74
Points : 40
Points : 40
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.
Citation:
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 :
1
2
3
4
5
6
 
#define REGISTER_STARTUP(class) static void Reg_##class() \
       { \
       class::CreateHandle(); \
       } \
       #pragma startup Reg_##class
PocoYote est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2012, 12h14   #2
ShaiLeTroll
Expert Confirmé Sénior
 
Avatar de ShaiLeTroll
 
Homme
Développeur C++\Delphi
Inscription : juillet 2006
Messages : 9 261
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Développeur C++\Delphi
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : juillet 2006
Messages : 9 261
Points : 13 373
Points : 13 373
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 :
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 :
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

Halte à la ségrégation des Cinémas, VO sur Paris, VF en Banlieue, Abonnement résilié !
ShaiLeTroll est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2012, 23h28   #3
PocoYote
Membre du Club
 
Inscription : août 2010
Messages : 74
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 74
Points : 40
Points : 40
ah tiens c'est vraiment pas bête !

Je vais vois ce que je peux faire avec ça. Merci !
PocoYote est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2012, 10h50   #4
nirgal76
Membre chevronné
 
Inscription : septembre 2007
Messages : 472
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 472
Points : 743
Points : 743
#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
nirgal76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2012, 14h36   #5
PocoYote
Membre du Club
 
Inscription : août 2010
Messages : 74
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 74
Points : 40
Points : 40
Merci nirgal,

j'avais testé mais ça ne fonctionne pas.
PocoYote est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 04h41.


 
 
 
 
Partenaires

Hébergement Web