-
Red�finition de macro
Bonjour,
J'utilise Visual studio 2010 et j'ai un petit probl�me :
Suite au changement du PC, j'ai migr� sous Visual studio 2010 et le nouveau SDK framework. Malheureusement, mon projet utilise une macro dont le nom est aussi utilis� par le framework ... et celle-ci n'a pas le m�me nombre d'arguments.
Je ne peut pas enlever l'include du SDK sinon �a p�te de partout ...
J'ai aussi tent� en changeant l'ordre des include etc... pareil
Il y a t-il une solution sans avoir � tout renommer?
Merci d'avance
-
Bonjour,
La solution de contournement, qui serait � mon sens une mauvaise id�e, serait de faire #undef NOM_MACRO avant ton #define puis de t'arranger dans l'ordre des inclusions pour que chaque portion de code ait acc�s � la bonne d�finition de la macro.
Mais ce serait une mauvaise id�e car cela laisserait le projet dans un �tat o� le moindre changement risquerait de provoquer de nouveau cette collision de nom. Donc, � mon avis, il vaut mieux faire du renommage.
D'o� l'int�r�t d'�crire d�s le d�part des macros avec un nom unique, par exemple avec un pr�fixe sp�cifique au projet.
Au passage, quand c'est possible, il vaut mieux cr�er une fonction statique qu'une macro-fonction. Mais c'est vrai que ce n'est pas toujours possible, par exemple si le code de la macro utilise __LINE__ ou __func__.