none
Pourquoi mon programme réaliser par VC++ ne marche pas sur d'autres ordinateurs RRS feed

  • Question

  • Bonjour ,  je voudrais savoir pourquoi mon programme réalisé par " Microsoft visuel C++ 2008 " ne fonctionne pas dans autre ordinateur que le miens ...
    Et je vous pris de répondre le plus rapidement possible , comment réglé ce problème
    .. Merçi de votre aimable compréhension ...
    vendredi 14 mars 2014 17:55

Réponses

  • Désolé, je n'utilise jamais VC++ seul, j'utilise VS. Effectivement, les type de projets "déploiements" ne font peut-être pas partie du package minimaliste de VC++. Et maintenant, c'est un peu coton à récupérer si vous avez pas un abonnement MSDN.

    InnoSetup n'est là que pour packager un ensemble de fichier, et d'action sur le système cible, pour en faire un MSI.

    C'est donc à vous de donner toutes ces information à InnoSetup.

    L'approche habituelle est de faire tout au long du développement et régulièrement des installations et des tests automatiques sur des machines "vierges" (les VM sont bien pratique dans ce type d'activité).

    Au début, le MSI ne contiendra que l'exécutable, les fichiers de configuration de votre application, les scripts de modifications de la base de registre nécessaire à l'exécution, les dll utilisés directements par votre exécutable ainsi que les MSM des framework et autres outils nécessaire à son bon fonctionnement, plus des bat et autres cochonneries si vous programmez comme un cochon.

    Comme vous faites ces actions toujours depuis une machine vierge (juste l'OS, voir un anti-virus), s'il manque quelque chose non fourni par l'OS cible, les tests automatiques vous diront que cela ne vas pas et vous devez corriger le tir en fonction des dernières modifications faites après la dernière campagne de tests qui avait réussi.

    Si vous n'avez pas suivi l'approche habituelle, vous êtes au pieds du mur, vous devez vous rapeller, ou redécouvrir toutes les bidouilles que vous avez faites sur votre machine de développement et voir l'impacte que cela entrainer pour faire fonctionner sur une machine "vierge" (pas de VC++, pas de SQL Server ou tout autre outils pour développement).

    Si vous avez la même mémoire que moi, vous êtes bon pour débugger les installations, mais sans installer d'outils de développement (il y a quelques gruges quand même) sur les machines vierges.

    Bin, il y a un truc très courant quand on fait pas gaffe, c'est d'utiliser involontairement des Dll C ou C++ Runtime, MFC, .NET récents, fournies avec VC++ mais pas dans les OS cibles. En fonction de votre licence VS, et de la version de VS, vous avez une procédure spécifique sur la distribution de ce que l'on appel le "VC++ Redistribuable Package".

    http://www.microsoft.com/en-us/download/details.aspx?id=5582


    Paul Bacelar, Ex - MVP VC++


    mardi 18 mars 2014 18:33
    Modérateur

Toutes les réponses

  • Parce que vous ne l'avez pas packagé dans un MSI pour que celui-ci contienne tout les composant nécessaire sur n'importe quel machine cible, quelque soit les composants préinstallés.

    Il n'y a pas de miracle, faut savoir de quoi a besoin votre programme pour fonctionner. Compilé avec VC++ ou avec un compilateur Klingon, c'est pareil, c'est au programmeur de maitriser les dépendances de son programme.


    Paul Bacelar, Ex - MVP VC++


    vendredi 14 mars 2014 18:27
    Modérateur
  • Dsl , je suis encore un débutant .. pouvez vous svp me dire comment le packagé dans un MSI Avec des exemples si c possible
    lundi 17 mars 2014 17:26
  • Dans VS2008, il existe des type de projet "déploiement" pour générer des MSI, voir des application à déploiement "ClickOnce".

    Sinon, vous pouvez aussi utilisez Wix ou InnoSetup.

    Mais cela ne fait pas de miracle, vous devez maitriser les dépendance de votre programme pour les indiquer à ces outils. L'outil intégré à VS2008 peut prémâcher le travail, mais faut toujours vérifier derrière ce type d'outils (c'est un vieux machin préhistorique pour la génération MSI).


    Paul Bacelar, Ex - MVP VC++

    lundi 17 mars 2014 17:42
    Modérateur
  • je tester se que tu ma dis mais j'ai po trouver dans visual c++ 2008 l'outil pour déployé mon projet. toi tu ma conseiller   visual studio 2008 alors que moi j'utilise VC++ quoi qui l'on sois j'ai télécharger et tester   InnoSetup mais j'ai pas trouver les composent a lui donnais pour effectuer le déploiement c'est pour sa que je suis revenu vers vous pour que vous me conseiller a nouveau ; quelle sont les défirent fichiers que je dois remettre au innosetup pour le bon fonctionnement de mon programme sur n'importe ordi

    mardi 18 mars 2014 16:45
  • Désolé, je n'utilise jamais VC++ seul, j'utilise VS. Effectivement, les type de projets "déploiements" ne font peut-être pas partie du package minimaliste de VC++. Et maintenant, c'est un peu coton à récupérer si vous avez pas un abonnement MSDN.

    InnoSetup n'est là que pour packager un ensemble de fichier, et d'action sur le système cible, pour en faire un MSI.

    C'est donc à vous de donner toutes ces information à InnoSetup.

    L'approche habituelle est de faire tout au long du développement et régulièrement des installations et des tests automatiques sur des machines "vierges" (les VM sont bien pratique dans ce type d'activité).

    Au début, le MSI ne contiendra que l'exécutable, les fichiers de configuration de votre application, les scripts de modifications de la base de registre nécessaire à l'exécution, les dll utilisés directements par votre exécutable ainsi que les MSM des framework et autres outils nécessaire à son bon fonctionnement, plus des bat et autres cochonneries si vous programmez comme un cochon.

    Comme vous faites ces actions toujours depuis une machine vierge (juste l'OS, voir un anti-virus), s'il manque quelque chose non fourni par l'OS cible, les tests automatiques vous diront que cela ne vas pas et vous devez corriger le tir en fonction des dernières modifications faites après la dernière campagne de tests qui avait réussi.

    Si vous n'avez pas suivi l'approche habituelle, vous êtes au pieds du mur, vous devez vous rapeller, ou redécouvrir toutes les bidouilles que vous avez faites sur votre machine de développement et voir l'impacte que cela entrainer pour faire fonctionner sur une machine "vierge" (pas de VC++, pas de SQL Server ou tout autre outils pour développement).

    Si vous avez la même mémoire que moi, vous êtes bon pour débugger les installations, mais sans installer d'outils de développement (il y a quelques gruges quand même) sur les machines vierges.

    Bin, il y a un truc très courant quand on fait pas gaffe, c'est d'utiliser involontairement des Dll C ou C++ Runtime, MFC, .NET récents, fournies avec VC++ mais pas dans les OS cibles. En fonction de votre licence VS, et de la version de VS, vous avez une procédure spécifique sur la distribution de ce que l'on appel le "VC++ Redistribuable Package".

    http://www.microsoft.com/en-us/download/details.aspx?id=5582


    Paul Bacelar, Ex - MVP VC++


    mardi 18 mars 2014 18:33
    Modérateur