2 applications dans une meme

Résolu
tiblay Messages postés 60 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 6 janvier 2009 - 5 nov. 2007 à 17:23
tiblay Messages postés 60 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 6 janvier 2009 - 6 nov. 2007 à 13:53
Bonjour a tous,

Voici mon interrogation.  J'ai 2 logiciels qui font a peut pres la meme chose mis a part que la version DELUXE utilise MapPoint (un logiciel de cartographie de Microsoft)).  Je developpe donc 2 logiciels en meme temps, ce qui me demande de repeter ou ajuster le code des que j'ajoute des nouvelles fonctionallites ou corrige un BUG.  Je connais deja la compilation conditionnelle et je l'utilise mais mon probleme et que j'ai environ 4 forms avec des references a MapPoint (objet OCX sur la form ou ref a des fonctions).  Je voudrais utiliser seulement 1 source pour les 2, mais je ne sais pas comment compiler la version LIGHT (sans MapPoint) sans les liens que VB cree avec MapPoint (exclure les form que je n'utilise pas).  je ne sais pas comment compiler avec un conditionnel pour les OCX et les forms, la je bloque.

Merci de votre aide

Un codeur qui travaille en double, comme si je n"avais pas assez de boulot.......

TiBlay

8 réponses

Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
5 nov. 2007 à 19:23
Autre option :
- tout ce qui est commun au deux versions (les ficheir frm, bas, etc) dans un même dossier
- Tout ce qui concerne la version "deluxe" dans un autre dossier
- Tu crées deux projets : un light et un deluxe
- Dans les deux projet tu ajoutes les fichiers du dossier commun
- Dans le projet Deluxe, tu ajoutes les fichiers le concernant
- Idem pour le projet Light
- Tu peux même mettre ces deux projets dans une solution unique

Ainsi, si tu dois faire une modif dans un fichier commun au deux versions, les deux projets pointant vers ce même fichier, les modif sont répercutées dans les deux projets : Cela t'oblige juste à recompiler les deux projets à ce moment la.

Par contre, une seule grosse contrainte : Lorsque tu ouvres ta solution, et que tu édites un fichier commun à partir du projet "light" par exemple, n'ouvres pas ce même ficheir commun via le projet "Deluxe", sinon VB va t'emmerder en te disant que ce fichier est déjà modifier etc ....

J'ai eu à gérer une solution de ce genre et cela fonctionne très bien
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 nov. 2007 à 17:59
salut,
est-ce vraiment gênant que le programme compilé contienne aussi les forms auquel il ne fara pas appel dans la version Light?

suffit juste d'appeler (ou non) selon la version non?
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
tiblay Messages postés 60 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 6 janvier 2009
5 nov. 2007 à 18:21
Bonjour PCPT,

Non justement si c'est possible ne pas inclure les forms dans la compilation.  Je cherche une methode plus simple de que supprimer les forms du projet pour le compiler.  Je ne connait pas d'autre fonction que #If...  #End If  pour la compilation conditionnel, il en existe une qui pourrais fonctionner pour les forms ????? ou quelque chose du genre

Merci

TiBlay
0
boursicotteur Messages postés 201 Date d'inscription mercredi 25 septembre 2002 Statut Membre Dernière intervention 10 novembre 2007
5 nov. 2007 à 18:23
Si j'ai bien compris, tes 2 logiciels (light et deluxe) sont des logiciels que tu écris et tu voudrais produire une seule source au lieu de deux pour faciliter l'entretient.

Comme je ne suis vraiment pas ferré en compilation, j'aurais plutôt tendance à aborder le problème d'une autre façon.

Je ferais une seule source contenant tout le code (deluxe).

 Pour la version light, je désactiverais les options "deluxe":
* soit avec une clef (mot de passe) entré à l'installation.
    => 1 seule compilation pour les 2 versions
* soit en cochant une case AVANT DE COMPILER.
    => 2 compilations (Deluxe = case cochée, Light = case non cochée)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tiblay Messages postés 60 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 6 janvier 2009
5 nov. 2007 à 18:36
Salut boursicotteur,

Oui tu as bien compris mon probleme.Et oui c'est une solution, mais dans mon cas il faut que j'install MapPoint (2 CD's) avec environ 800 Megs, sans compter la license pour etre legal, dans ce cas ci ce n'est pas une solution envisageable.  J'utilise deja la methode du #If  ...  #End If pour avoir differente version de d'autre logiciel, mais dans ca cas si je cherche une methode plus simple que de supprimer des FORMS et supprimer tout les references a celle ci.

Merci quand meme pour ton idee

TiBlay
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 nov. 2007 à 18:46
voici une possibilité que je trouve propre, mais qui t'oblige une petite reconception....

tout ce qui touche au Deluxe, tu le fais dans une ou plusieurs DLL (activeX)

tu avances comme tu l'entends etc..., et ta DLL est chargée dynamiquement (pas par référence), donc par code.

donc concrêtement tu n'auras qu'un exe, avec ou sans la DLL qui elle se charge de tout le reste
et ton code l'instancie ou non avec jusse un #const Deluxe as boolean=false

#if Deluxe then Call ChargeMaDll

pas envisageable?
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
tiblay Messages postés 60 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 6 janvier 2009
5 nov. 2007 à 18:59
Salut PCPT,

Oui je vais essayer ca, c'est une bonne idee.  Reste une chose a verifier, c'est que mon soft a une interface MDI, et je crois que j'ai deja eu de la difficulte a afficher une form CHILD dans un interface MDI a partir d'un DLL active X.  Mais je fais des TEST et jeviens avec les resultat, et si quelqu'un a un autre idee ....................

Merci

TiBlay
0
tiblay Messages postés 60 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 6 janvier 2009
6 nov. 2007 à 13:53
Bonjour [auteur/KRISTOFKODER/1121413.aspx Kristof_Koder],

Merci,

 c'est exactement ce que je cherchais, simple et propre

Best Regard's

TiBlay
0
Rejoignez-nous