Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème exécutable

Visual C++

    4 décembre 2007 à 9:36:15

    Bonjour amis zéro

    Après plusieurs heures de recherche sans grand résultat je me permet de vous déranger quelque seconde car j'ai un gros problème.

    Comme je l'ai dis dans le titre j'ai un problème avec le fichier .exe de mon appli. Je vous explique, j'ai programmé un logiciel, sous visual C++ 2005. Quand je le compile je n'ai pas d'erreur et pas d'avertissement et le fichier .exe se créé. Lorsque je donne se fichier .exe à un ami et qu'il lance l'appli il tombe sur un message d'erreur qui lui dit :

    Erreur : Une réinstallation pourrait corriger cette erreur.


    A votre avis pourquoi est ce que j'ai cette erreur??????


    Merci d'avance de votre aide.
    • Partager sur Facebook
    • Partager sur Twitter
      4 décembre 2007 à 9:58:01

      Salut,

      Probablement parce que la bibliothèque de Visual Studio n'est pas installée sur l'ordinateur cible, cf la FAQ...
      • Partager sur Facebook
      • Partager sur Twitter
        4 décembre 2007 à 10:40:51

        Ok merci de ta réponse je vais tester des que je pourrais et je te tiendrais au courant ;)
        • Partager sur Facebook
        • Partager sur Twitter
          4 décembre 2007 à 10:55:02

          Citation : gouttegd

          Salut,

          Probablement parce que la bibliothèque de Visual Studio n'est pas installée sur l'ordinateur cible, cf la FAQ...



          ca aurait compilé sans la bibliotheque?

          je pense que meme si ca a réussit à compilé il y a une erreur dans ton code
          (mauvaise utilisation de tableau...
          erreur de segmentation...)

          montre nous ton code pour que l'on puisse nous faire un avis :);)

          EDIT: son probleme viens de son ordinateur à ce que je lis ;)
          • Partager sur Facebook
          • Partager sur Twitter
            4 décembre 2007 à 11:15:46

            Citation : neuneutrinos


            ca aurait compilé sans la bibliotheque?



            Oui ça compile car sur mon ordinateur j'ai Visual C++ 2005 et donc j'ai la bibliothèque par contre si je veux passez mon appli à quelqu'un qui n'a pas visual C++ 2005 il n'a pas la bibliothèque donc ça marche pas.

            Je crois que le fait d'installer la bibliothèque sur l'ordi cible devrait marcher. De toute façon je vais vite vérifier ça et je vous tiens au courant ;)
            • Partager sur Facebook
            • Partager sur Twitter
              4 décembre 2007 à 13:54:40

              T'as essayé de compiler ton programme avec minGW sous code::blocks par exemple? tu aurais un truc standard qui ne requiert pas de dll implicites.

              Ensuite il te faut bien penser a donner ton fichier avec toutes les ressources c'est a dire:
              si tu utilises un dll avec SDL par exemple, faut la mettre dans le même dossier que l'exe sur la machine cible.

              Si tu charges des ressources (fichier texte, image...) faut aussi les livrer.
              • Partager sur Facebook
              • Partager sur Twitter
                4 décembre 2007 à 14:07:15

                @ lemondeboiteux : rien à voir avec un quelconque standard, c'est simplement que par défaut, Visual C++ lie le programme dynamiquement à sa bibliothèque, alors qu'apparemment Code::Blocks (enfin, GCC pour Windows, in fine) créée une liaison statique (du coup, pas de dépendance à une bibliothèque partagée).

                (C'est marrant, on a déjà eu quasiment la même discussion quelques mois plus tôt. ^^ )
                • Partager sur Facebook
                • Partager sur Twitter
                  4 décembre 2007 à 14:15:47

                  Ca serait une solution de s'affranchir de la dll visual C++ en réalisant un linkage statique, c'est pour ca que je demande si ca marcherais pas.

                  Sinon faut distribuer les dll visual C++ avec le programme mais je ne sais pas faire. Il doit sans doutes y avoir un pack microsoft a rajouter avec l'installable.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    4 décembre 2007 à 15:04:15

                    Es-tu certain que tu as compilé en mode Release et non pas Debug? Car en Debug il est vrai que cela prend un librairie spéciale qui est la crtd alors qu'en release c'est la crt qui est disponible sur tout les Windows, Linux, *BSD et *nix depuis plus de 30 ans!

                    Ça c'est dans le cas où ton appli n'as besoin d'aucune autre bibliothèque spéciale que tu devra distribuer avec ton petit logiciel (outre le SDK Windows et la STL qui sont lié en statique)


                    Et vous allez m'arrêter c'est histoires de changer d'IDE à cause d'une petite difficulté qui est surement dû à une mauvaise configuration de son projet? Les « Moi, j'utilise C::B (IDE choisi par rapport à ce sujet seulement) et je n'ai pas ce problème » c'est vraiment lourd! Arrêtez de poster inutilement pour dire autant de niaiseries! L'idée c'est d'aider votre compatriote Zér0 avec ce qu'il demande, pas ce que vous préférez.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      4 décembre 2007 à 15:15:19

                      @ MatteX : non, la CRT (C Runtime Library) de Visual Studio, qu'il s'agisse de la version Debug ou de la version Release, n'est pas forcément présente sur la machine cible. Elle le sera si l'utilisateur a déjà installé un programme nécessitant cette bibliothèque (et dont l'installeur a fait ce qu'il faut pour l'installer en même temps que le programme) ; sinon, il faut installer la bibliothèque elle-même telle que fournie par Microsoft sous la forme d'un pack redistribuable.

                      Mais +1 sur le dernier paragraphe.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        4 décembre 2007 à 15:17:39

                        Pour passer le programme a quelqu'un
                        - fait une release : en haut de ton IDE, tu as une case DEBUG, clique dessus, et change pour RELEASE et recompile (ton exe ira dans un dossier release)
                        - compile de préférence en MT (propriétés du projet/ C/C++ / code generation, runtime lib = MT (multithread)

                        si tu compiles avec Vista tu auras peut etre des problemes pour y passer a des gens qui ont XP

                        Quoiqu'il en soit : les 2 points que j'ai passé plus haut sont fondamentaux.
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                          4 décembre 2007 à 16:00:16

                          L'objectif de tester avec code blocks était pour savoir d'où venait le problème, il ne me semble pas avoir écrit quelque part que codeblocks c'est mieux, ou qu'avec code blocks ca marche chez moi. Les jugements de valeurs sur les IDE, c'est pas mon truc et je m'en moque

                          J'ai juste demandé de tester, j'ai oublié de préciser pourquoi, ce qui a pu prêter a confusion alors je le fais:

                          Il manque des trucs chez l'utilisateur et on ne sait pas quoi. - Soit c'est une dll de librairie, soit c'est un truc spécifique à visual studio. Tester avec code::blocks aurait permis de trancher entre les deux.

                          Maintenant l'hypothèse de la crt ne me parait plutot bonne, donc c'est effectivement le premier truc à tester.

                          ---


                          Citation : Pas de titre

                          c'est la crt qui est disponible sur tout les Windows, Linux, *BSD et *nix depuis plus de 30 ans!


                          --> Linux datant de 1991 (1) je doute :)

                          (1) http://fr.wikipedia.org/wiki/Linux
                          • Partager sur Facebook
                          • Partager sur Twitter
                            6 décembre 2007 à 17:25:12

                            Désolé de répondre que maintenant mais j'ai eu beaucoup de boulot ces derniers jours

                            Citation

                            Es-tu certain que tu as compilé en mode Release et non pas Debug? Car en Debug il est vrai que cela prend un librairie spéciale qui est la crtd alors qu'en release c'est la crt qui est disponible sur tout les Windows, Linux, *BSD et *nix depuis plus de 30 ans!

                            Ça c'est dans le cas où ton appli n'as besoin d'aucune autre bibliothèque spéciale que tu devra distribuer avec ton petit logiciel (outre le SDK Windows et la STL qui sont lié en statique)


                            Et vous allez m'arrêter c'est histoires de changer d'IDE à cause d'une petite difficulté qui est surement dû à une mauvaise configuration de son projet? Les « Moi, j'utilise C::B (IDE choisi par rapport à ce sujet seulement) et je n'ai pas ce problème » c'est vraiment lourd! Arrêtez de poster inutilement pour dire autant de niaiseries! L'idée c'est d'aider votre compatriote Zér0 avec ce qu'il demande, pas ce que vous préférez.



                            J'ai essaillé en release mais ça marche pas non plus. pourtant je n'utilise pas de bibliothèque. xD

                            Sinon j'ai installé la bibliothèque que donne gouttegd dans la faq et la ça marche. Donc maintenant j'essaille de créer une installation qui permet d'installer la bibliothèque et mon logiciel.

                            Vous savez comment faire pour programmer une installation?
                            Car moi j'ai lu comment il faut faire dans l'aide mais je ne comprend pas trop xD
                            • Partager sur Facebook
                            • Partager sur Twitter
                              6 décembre 2007 à 22:34:28

                              NullSoft Installer ou InnoSetup
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Problème exécutable

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown