IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

creer un fichier d'installation avec installshield pour vc++


Sujet :

MFC

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2002
    Messages : 10
    Points : 2
    Points
    2
    Par défaut creer un fichier d'installation avec installshield pour vc++
    J'ai créé un projet vc++ avec une database en access, j'essaie de créer le fichier d'installation avec l'instalshield de visual studio. Mon problème est le suivant : je ne sais pas comment inclure la base de donnees pour qu'elle soit copiee avec les autres fichiers lors de l'insatallation

    Cobra
    "L'esclave n'a qu'un seul maître, l'ambitieux en a autant qu'il existe de personnes pouvant aider sa fortune" - Ciceron

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 29
    Points : 32
    Points
    32
    Par défaut
    Salut,

    Une fois Installshield lancé à partir de VC++, sélectionne l'onglet File Group, déploie l'arborescence affichée dans le panneau de gauche, puis fais un clic droit sur le symbole Links ou bien sur le panneau de droite. Dans le menu popup tu auras l'option Insert files... validée !!

    C'est pas merveilleux ?

    @tchao
    un fondu qui travaillait qu'à la dynamite

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2002
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    le symbole links n'apparrait pas au secours je suis maudit

    Cobra
    "L'esclave n'a qu'un seul maître, l'ambitieux en a autant qu'il existe de personnes pouvant aider sa fortune" - Ciceron

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 29
    Points : 32
    Points
    32
    Par défaut
    Je me suis peut-être mal exprimé:

    Quand tu sélectionnes l'onglet File Groups, celui-ci t'affiche 'NomDeTonProjet' File Groups.
    Si tu double-cliques sur ce dossier, la ligne suivante affiche un dossier nommé Program Executables.
    Si tu double-cliques sur ce dossier, la ligne suivante affichera Links (symbole feuille avec un maillon de chaîne).
    Si enfin tu fais un clic droit sur cette ligne, tu auras le fameux menu popup qui te proposes Insert Files...

    @tchao
    un fondu qui travaillait qu'à la dynamite

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2002
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Bon

    J'ai l'impression qu'il ne trouve pas mon projet car quand je cliques sur l'onglet file group, il m'affiche uniquement "programme executables" et "shared dll" et je ne trouve ma base de donnees (access) dans aucune de ces arborescences

    Cobra
    "L'esclave n'a qu'un seul maître, l'ambitieux en a autant qu'il existe de personnes pouvant aider sa fortune" - Ciceron

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 29
    Points : 32
    Points
    32
    Par défaut
    Plus ça va, moins je comprend ton problème.

    La meilleure façon de lancer InstallShield pour VC++, c'est:
    1. lance Visual C++ et charge ton projet
    2. dans VC++, va dans Tools puis InstallShield Wizard
    3. dans la première boîte de dialogue, sélectionne ton projet (*.dsw), car le projet proposé par défaut n'est pas forcément le bon
    4. dans la fenêtre suivante, complète ou modifie les divers champs. Vérifie notamment que le champ Application Executable est correct
    5. la fenêtre suivante t'indique les groupes et fichiers dont InstallShield a besoin pour que ton appli tourne, mais attention, il ne s'agit que des dépendances. Ce sont ces informations là qui sont présentées dans l'onglet File Groups de InstallShield.
    6. te voilà maintenant dans InstalShield proprement dit qui t'affiche l'onglet Scripts par défaut.
    7. sélectionne l'onglet File Groups et... on en revient à mes messages précédents !!

    @tchao
    un fondu qui travaillait qu'à la dynamite

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2002
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Effectivement je regardais les dependances j'ai fait comme tu m'as dit. Il me reste un dernier probleme quand je lance le setup obtenu l'installation se fait et oh joie le fichier .mdb apparait bien ou il faut mais il ne sert a rien

    Je précise que le type de gestion de la base est dao et que dans mes codes sources j'ai le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CString CSalleSet::GetDefaultDBName()
    {
    	return _T("C:\\Projet Salle\\Salle\\Salles.mdb");
    }
    Y-a-t-il moyen malgré tout de rendre l'emplacement de la base de données indépendante ?

    Merci

    Cobra
    "L'esclave n'a qu'un seul maître, l'ambitieux en a autant qu'il existe de personnes pouvant aider sa fortune" - Ciceron

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 29
    Points : 32
    Points
    32
    Par défaut
    Avant toute chose: ne jamais coder en dur comme dans ton exemple. Déclare plutôt une équivalence ou une constante que tu pourras utiliser à plusieurs endroits dans ton programme alors qu'elle ne pourra être modifiée qu'à un seul endroit.

    Par "emplacement indépendant", je suppose que tu veux dire modifiable ou retrouvable ?

    Je vois quelques solutions:
    1. donne l'emplacement de ta base en paramètre dans la ligne de commande qui appelle ton appli
    2. propose à l'utilisateur de ton appli une boîte de dialogue comprenant un contrôle ActiveX du type Common Dialog qui te renverras le nom complet du fichier sélectionné
    3. si ta base est installée dans le même répertoire que ton appli, tu peux récupérer le nom de ce répertoire, mais je ne me rappelle plus comment !!!

    Dans tous les cas, note le chemin dans une variable chaîne que tu pourras mainpuler comme tu veux.

    @tchao
    un fondu qui travaillait qu'à la dynamite

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2002
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    C'est dommage que tu ne te souvienne plus comment récuprérer le répertoire, car la base de données se trouve effectivement dans le même répertoire que mon applic et c'est donc la troisième solution qui m'aurait le mieux convenu

    Cobra
    "L'esclave n'a qu'un seul maître, l'ambitieux en a autant qu'il existe de personnes pouvant aider sa fortune" - Ciceron

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 29
    Points : 32
    Points
    32
    Par défaut
    Essaye GetCurrentDirectory
    un fondu qui travaillait qu'à la dynamite

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2002
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Au secours je ne m'en sors pas avec cette fonction (desole si mes questions semblent idiotes mais c'est ma première application dans ce langage )
    "L'esclave n'a qu'un seul maître, l'ambitieux en a autant qu'il existe de personnes pouvant aider sa fortune" - Ciceron

  12. #12
    Futur Membre du Club
    Inscrit en
    Avril 2002
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Salut,

    Y-a-t-il moyen malgré tout de rendre l'emplacement de la base de données indépendante ?
    Au lieu de mettre ton chemin d'accès à ta base en "dur", mets le en relatif.
    Si ta base de données est ds ton rep de travail, il te suffit de mettre :
    à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "C:\\Projet Salle\\Salle\\Salles.mdb"
    J'espère que ça marchera mieux comme ça, en tous cas, c'est la méthode la plus simple (à mon avis...)

    Une chose qd même à retenir ds tout ça : il ne faut jamais mettre un chemin en dur ds ton code, il faut au minimun mettre un chemin relatif. Le mieux étant d'utiliser des variables d'environnement (c'est la méthode qui utilise les fonctions du type "GetCurrentDirectory()" ) ton code est alors indépendant de l'emplacement de ton projet et de la machine que tu utilises...

    Bon courage pour la suite.

    @+

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 29
    Points : 32
    Points
    32
    Par défaut
    Exemple de codage :

    char pBuff[256]; // buffer de réception de 256 octets (\0 inclus)

    GetCurrentDirectory(strlen(pBuff),pBuff); // lecture du répertoire courant


    A la fin de ce code, pBuff contient le nom du répertoire courant auquel il suffit de concaténer le nom de ta base pour avoir le chemin complet.


    @tchao
    un fondu qui travaillait qu'à la dynamite

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2002
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Ca marche très bien merci beaucoup pour votre aide

    Cobra
    "L'esclave n'a qu'un seul maître, l'ambitieux en a autant qu'il existe de personnes pouvant aider sa fortune" - Ciceron

  15. #15
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2002
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Il y a un autre probleme, j'ai essaye d'installer mon projet sur une autre machine en me servant des repertoires "disk 1" et "disk 2" créés par l'installshield mais je me heurte a un probleme de dll manquant quand je veux executer mon projet sur une autre machine

    J'ai besoin de votre aide quelqu'un

    Merci

    Cobra
    "L'esclave n'a qu'un seul maître, l'ambitieux en a autant qu'il existe de personnes pouvant aider sa fortune" - Ciceron

  16. #16
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 29
    Points : 32
    Points
    32
    Par défaut
    Et si tu nous disais de quelle DLL il s'agit, hein, dis ?

    @tchao
    un fondu qui travaillait qu'à la dynamite

  17. #17
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2002
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Y a qu'a demander c'est le fichier MFC42D.DLL j'ajoute par ailleurs que la desinstallation du programme (en passant par le panneau de condifguration->ajout/supression...) est impossible car il ne trouve pas le fichier de désinstallation (je ne sais pas si ca a un rapport mais je le signale quand meme )

    J'espère que tu pourras encore m'aider

    Merci

    Cobra
    "L'esclave n'a qu'un seul maître, l'ambitieux en a autant qu'il existe de personnes pouvant aider sa fortune" - Ciceron

  18. #18
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 29
    Points : 32
    Points
    32
    Par défaut
    Ben c'est un problème classique !

    C'est dû au fait que tu n'as pas linké en statique la librairie MFC !
    Je te propose donc ces solutions:
    -modifier les options de ton projet VC++ (je ne sais pas comment faire pour y ajouter la librairie MFC statique )
    -ajouter MFC42D.DLL dans ton projet Installshield (voir mes précédents courriers)
    -recréer ton projet VC++ avec l'option As a statically linked library (au lieu de l'option As a shared DLL qui est sélectionnée par défaut)


    @tchao
    un fondu qui travaillait qu'à la dynamite

  19. #19
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2002
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    J'ai opté pour ta seconde solution, mais alors il me dit que MSVCRTD.DLL manqe également.

    Cobra
    "L'esclave n'a qu'un seul maître, l'ambitieux en a autant qu'il existe de personnes pouvant aider sa fortune" - Ciceron

  20. #20
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 29
    Points : 32
    Points
    32
    Par défaut
    Ben ajoute-la dans ton projet Installshield !!!

    Le problème avec InstallShield (avec également tous les installeurs du marché) vient du fait qu'il ne détecte pas forcément tous les fichiers requis à l'exécution de ton appli. Alors à chaque fois que tu te fais jeter, il faut corriger ton installation.
    Une bonne manip à faire : essayer ton installation sur un PC vierge!
    Ce n'est pas à la portée de tout le monde (côté brouzouf), mais ça garantit que ton install marche à tous les coups.
    (de mon côté je développe sur plusieurs plate-formes et je teste mes installations sur Win 95, WinNT et Win2k avant livraison)
    un fondu qui travaillait qu'à la dynamite

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec Installshield pour Delphi 6
    Par souha2008 dans le forum Outils
    Réponses: 1
    Dernier message: 21/01/2008, 10h50
  2. la création d'une installation avec InstallShield.
    Par houssam84 dans le forum Bases de données
    Réponses: 1
    Dernier message: 15/07/2007, 12h21
  3. Creer un fichier d'install
    Par choko62 dans le forum Installation, Déploiement et Sécurité
    Réponses: 1
    Dernier message: 22/06/2007, 09h36
  4. Comment creer un fichier d'installation MSI
    Par javel_man dans le forum Windows XP
    Réponses: 5
    Dernier message: 07/05/2007, 21h36
  5. Réponses: 16
    Dernier message: 16/05/2006, 12h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo