tiblay
Messages postés60Date d'inscriptionmercredi 9 novembre 2005StatutMembreDernière intervention 6 janvier 2009
-
5 nov. 2007 à 17:23
tiblay
Messages postés60Date d'inscriptionmercredi 9 novembre 2005StatutMembreDerniè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.......
Kristof_Koder
Messages postés918Date d'inscriptionvendredi 3 août 2007StatutMembreDernière intervention27 octobre 200810 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
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
tiblay
Messages postés60Date d'inscriptionmercredi 9 novembre 2005StatutMembreDerniè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
boursicotteur
Messages postés201Date d'inscriptionmercredi 25 septembre 2002StatutMembreDernière intervention10 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)
Vous n’avez pas trouvé la réponse que vous recherchez ?
tiblay
Messages postés60Date d'inscriptionmercredi 9 novembre 2005StatutMembreDerniè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.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
tiblay
Messages postés60Date d'inscriptionmercredi 9 novembre 2005StatutMembreDerniè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 ....................