Bonjours,

J'ai fait des modifications pour un projet open source.

Actuelement, le programme (ou plutôt jeu) affiche du texte sur la console grâce a :
info->AddLine("xxx"); et *info << "xxx";

Mes modifications m'oblige à les changer respectivement en :
guicontroller->AddText("xxx"); et *guicontroller << "xxx"

Mais comme les développeurs veulent que je fasse le moins de modifications possible à leur code et que je garde la compatibilité avec ce qu'ils ont maintenant, j'utilise #define NEW_GUI , puis #ifdef NEW_GUI ou j'en ai besoin.

Malheureusement, comme info->AddLine et *info sont utilisé partout dans le code, utiliser des #ifdef partout rendrait le tout illisible.


J'ai donc éssayer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
#ifdef NEW_GUI
#define info->Addline(x) guicontroller->AddText(x)
#define *info *guicontroller
#endif
Mais cela ne marche pas. (je ne m'y connais pas beaucoup en précompilation.)

Peut-être que #define AddLine(x) guicontroller->AddText(x) pourrai marcher, mais cela ne m'arrange pas car je devrais modifier le code a beaucoup d'endroits. Et cela ne marcherait de toute facon pas pour #define *info *guicontroller

J'aimerai juste que le précompilateur remplace le texte de gauche par celui de droite.
Est-ce que je demande est possible , ou doit-je chercher une autre solution?

Merci