-
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__.