Ne pas compiler certains bouts de code
Bonjour.
Désolé pour le titre pourri, mais franchement je vois difficilement comment résumer ça.
Je m'explique :
Sous VC++2007, j'ai deux projet dans ma solution (ils compilent donc en même temps) qui ont des fichiers de classes en commun. Je voudrais que certaines méthodes de ces classes soient compilées par un projet mais pas par l'autre.
Donc en gros, voici ce que je fait :
Code:
1 2 3 4
| // Fichier mainApp.h, appartenant uniquement au projet 1
...
#define IS_MAIN_APPLICATION
... |
Code:
1 2 3 4 5 6 7 8 9 10
| // Fichier maclasse.h
classe Maclasse{
public:
void methode_en_commun();
#ifdef IS_MAIN_APPLICATION
void methode_que_seul_projet1_devrait_posseder();
#endif
} |
Code:
1 2 3 4 5 6 7 8
| // Fichier maclasse.cpp
#include maclase.h
void Maclasse::methode_en_commun(){...}
#ifdef IS_MAIN_APPLICATION
void Maclasse::methode_que_seul_projet1_devrait_posseder(){...}
#endif |
Le projet 2 ne compilant pas le fichier mainApp.h, pour lui tout se passe bien.
Par contre, le projet 1 compile la déclaration de methode_que_seul_projet1_devrait_posseder() dans maclasse.h, mais il saute l'implémentation de cette fonction dans maclasse.cpp
=> Du coup ça me fait une erreur de link (lnk 2019).
Vous avez une idée ?
Merci d'avance.
Martin