Produire 2 executables dans un seul projet [Résolu]

Signaler
Messages postés
8
Date d'inscription
lundi 6 septembre 2004
Statut
Membre
Dernière intervention
26 avril 2011
-
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
-
Bonjour,



Je travaille sur un projet assez vaste qui contient entre autres un
client, un serveur et beaucoup de classes communes aux deux. Je
voudrais pouvoir produire 2 executables (un pour le client et un pour
le serveur) sans avoir à créer 2 projets différents et à les faire
compiler les mêmes classes chacun de leur coté.

Est-il possible (sous VS .net 2003) qu'un projet unique produise 2 executables?

Ou sinon, est-il possible de créer un 3ème projet contenant toutes les
classes communes et d'inclure ce projet entier dans les dépendances du
client et dans celles du serveur?



D'avance merci


3 réponses

Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
En effet, si 2 projets ont à partager du code, il est préférable de faire une librairie commune aux 2.

Il y a 2 types de librairies :
- statique : crée un .lib dont le contenu sera intégré aux 2 exe.
- dynamique : crée une dll et un .lib qui liste les fonctions et classes contenues dedans et les 2 exe feront simplement des appels aux fonctions de la dll.

Dans les 2 cas la librairie peut définir des classes réutilisable par chacun des 2 projets (comme on le fait avec les MFC).
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
Tu peux créer un workspace vide (ou solution je crois sous vs .net 2003) et y créer 2 projets (un pour chaque exe).

Tu auras 1 répertoire pour chaque projet puis crée en un autre applé commion dans lequel tu mettra les sources communes.

Pour chaque projet, ajoutes les sources communes et les sources spécifiques. Au final tu auar 2 exe correspondant à 2 projets mais partageant les sources.

Ou bien tu peux faire comme tu disais, un projet de lib commun utililsé par tes 2 autres projets au sein du même worspace (avec une notion de dépendance).
Messages postés
8
Date d'inscription
lundi 6 septembre 2004
Statut
Membre
Dernière intervention
26 avril 2011

Jusqu'à maintenant, j'étais effectivement parti sur la première
solution mais ca ne me plait pas trop de devoir ajouter la source aux
deux projets à chaque fois que je crée une nouvelle source dans le
répertoire commun.



Le plus propre serait sans doute ce que tu propose en deuxième, à
savoir générer un fichier common.lib (ou common.dll ? je ne connais pas
bien la différence entre les deux) et y acceder depuis les 2 autres
projets.



Juste une question supplémentaire : si je crée une classe dans la
librairie partagée (.lib ou .dll), est-il possible de créer des classes
héritiaires hors de celle-ci, par exemple dans le serveur ou dans le
client?