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

Modifier les fonctions utilisé à la précompilation


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Modifier les fonctions utilisé à la précompilation
    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

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Tu ne peux pas simplement remplacer AddText par AddLine et ainsi faire un "#define info guicontroller" ?

    Si ce n'est pas possible, tu peux faire une classe adapteur dont tu crées une instance info, et qui renvoie sur guicontroller. Mais c'est de la bidouille.

    Je ne sais pas exactement quelle implication tu as dans ce projet, mais est-ce que tu ne peux pas essayer de mettre sur pied une solution "propre", quitte à devoir redévelopper certaines choses ?

  3. #3
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Je n'aime pas trop les define, ils risques de déborder... J'ai l'impression que info comme guicontroller sont des variables globales. Si tel est le cas, voici ce que je ferais (avec GuiController le type de guicontroller) :

    - Ajouter une fonction AddLine dans la GuiController pour raison de compatibilité, qui appellerait AddText
    - Définir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    GuiController guicontroller;
    GuiController &info = guicontroller;

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci des réponses, je vais éssayer.

    Loulou24 :
    Je ne sais pas exactement quelle implication tu as dans ce projet, mais est-ce que tu ne peux pas essayer de mettre sur pied une solution "propre", quitte à devoir redévelopper certaines choses ?
    Ben, pour l'instant, je ne suis pas trop impliqué dedans. Et j'ai aussi peur de faire des modifications irréversibles sans être capable des les supporter (bugs caché, truc important qui manque, etc...) car je sais ou sont mes limites en programmation.

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/03/2010, 18h56
  2. Modifier les menus en fonction des choix utilisateur
    Par ekremyilmaz dans le forum AWT/Swing
    Réponses: 15
    Dernier message: 21/01/2008, 00h46
  3. Réponses: 5
    Dernier message: 12/10/2007, 10h06
  4. Où trouver les fonctions précompilés.
    Par _Michel dans le forum Autres éditeurs
    Réponses: 12
    Dernier message: 20/08/2007, 18h54
  5. fonction qui modifie les valeurs de combos <select>
    Par NicoO_O dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/05/2007, 13h02

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