Bonjour à tous,
Voici ma problématique:
Je souhaite créer une dll de Base à tous mes projets, appelons là Common.
Bien-sur, je ne vais pas réinventer la std ou autre lib.
J'aimerai justement choisir une api (Poco ou Qt dans mon cas) et surcharger toutes les classes que je risque d'utiliser dans mes projets.
Mes projets ne doivent pas avoir connaissance de l'api choisie. Ce qui me permettra dans le futur de changer facilement d'api par une autre en modifiant seulement le projet Common.
Quelle est la meilleur méthode?
- utiliser des #define dans tous les sens
- surcharger les classes qui m'interesse
J'opte pour le moment pour la 2eme solution
Je rencontre le souci suivant:
Si j'inclue MaClasseSurchargee dans un autre projet de plus haut niveau.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Fichier MaClasseSurchargee.h #include "API/NamespaceA/ClasseA.h" namespace Common { namespace NamespaceA { class Common_API ClasseA: public API::NamespaceA::ClasseA { }; } //NamespaceA } //Common
Ce projet à besoin de savoir où se trouve:
"API/NamespaceA/ClasseA.h"
Et je ne veux pas lui donner l'info
Et malheureusement je ne peux pas écrire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 namespace API { namespace NamespaceA { class ClassA; } } namespace Common { namespace NamespaceA { class Common_API ClasseA: public API::NamespaceA::ClasseA { }; } //NamespaceA } //Common
Comment m'en sortir?
Je suis sur qu'il y a une solution simple.
Partager