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 : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4 // Fichier mainApp.h, appartenant uniquement au projet 1 ... #define IS_MAIN_APPLICATION ...
Code : S�lectionner tout - Visualiser dans une fen�tre � part
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 }Le projet 2 ne compilant pas le fichier mainApp.h, pour lui tout se passe bien.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
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
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
Partager