Exécutable compilé sur une machine ne fonctionne pas sur une autre

Résolu
Geurtrud Messages postés 6 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 30 avril 2007 - 27 avril 2007 à 02:30
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 30 avril 2007 à 14:46
Est-ce normal qu'un programme compilé sur une machine, qui fonctionne parfaitement sur celle-ci, ne fonctionne pas sur d'autres. C'est-ce qui m'arrive en ce moment. Lorsque je copie le fichier exe sur une autre machine j'obtiens un message qui me dit que l'application ne peut démarrer parceque la configuration n'est pas correct.

J'ai essayé plusieurs applications que j'ai créé sur mon ordi (dont un n'est qu'un simple "Bonjour le monde") qui ont planté sur d'autres machines. Que se passe-t-il?

Merci de votre aide

Philippe

12 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
27 avril 2007 à 21:45
Un exe natif n'a besoin de rien pour tourner sur un autre Windows.

Dans Visual Studio, il y a "projet de déploiement" mais je ne saurais t'en dire plus, je ne fais que du natif.

ciao...
BruNews, MVP VC++
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
30 avril 2007 à 14:46
Avec MFC ça reste du natif, ton exe sera lié aux dlls MFC et faudra donc un setup.

CLR ce n'est évidemment plus du tout du natif, 'managé' est le nouveau mot pour 'interprété', parait que ça fait mieux.

Pour créer des fenêtres tu peux faire avec MFC mais si tu veux une indépendance totale alors projet Win32 APP GUI (propriétés -> VIDE).
Tu peux utiliser aussi (ce que je fais):
TEMPLATES C/C++ POUR VS 2005
http://www.cppfrance.com/code.aspx?ID=36940

ciao...
BruNews, MVP VC++
3
THEwarrior333 Messages postés 192 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 30 janvier 2008
27 avril 2007 à 05:53
<endl>En fait le principe de la compilation est de transformer le code dit "haut niveau" tel que le C, en langage comprehensible par la machine. Hors toutes les machines ne parlent pas exactement le meme langage, aussi chaque compilateur est désigné pour une ou plusieurs machines (selon le processeur Intel, AMD, etc ou encore le systeme d'exploitation). Essais de changer de compilateur.
Quel compilateur utilises-tu et sur quelles machines as-tu effectué les tests?</endl>
0
Cphil51 Messages postés 87 Date d'inscription jeudi 22 juin 2006 Statut Membre Dernière intervention 24 septembre 2007
27 avril 2007 à 08:58
Si t'es sur PC avec VISUAL, va dans les options de ton projet -> C/C++ -> Génération du code
Dans l'entrée Bibliothèque runtime, choisire Multithread ou Débogage Multithread au lieu de la dll.

L'exe final sera plus gros mais passera partout.
 (La dll de runtime est installée avec Visual... donc ca passe pas sur les autres machines qui n'ont pas cette dll)
0

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

Posez votre question
Nixeus Messages postés 192 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 19 octobre 2020
27 avril 2007 à 10:53
Tu n'as pas fais de .net au moins?
0
Geurtrud Messages postés 6 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 30 avril 2007
27 avril 2007 à 16:42
Merci Phil,

ta solution fonctionne partiellement. Je l'ai essayé sur un projet Win32 console et effectivement je suis maintenant capable d'exécuter le fichier .exe sur d'autre machine. Le fichier a effectivement grossi ( de 48k à 612k!).

Cependant pour un projet CLR Windows Form Application, à la compilation j'obtiens un message d'erreur m'indiquant que l'option multithread n'est pas compatible avec le CLR pur. J'imagine que cela est en relation avec le commentaire de Nixeus. Y-a-t-il alors une solution?


J'ai également pensé à copier la dll runtime sur les autres machines: est-ce une alternative valable? Si oui quel est le nom des 2 dll (puisqu'il y en a un pour debug et l'autre release) et où sont - elles localisées?  où devrais-je les installés sur les nouvelles machines?


Merci encore une fois ... je sens que je progresse.


Philippe
0
Geurtrud Messages postés 6 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 30 avril 2007
27 avril 2007 à 16:51
Nixeus,

j'ai quelque projets CLR Windows Form application. J'imagine que c'est du dot Net. Si c'est le cas que proposes-tu? Une autre technologie, laquelle?


Merci

Philippe
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
27 avril 2007 à 17:16
Une autre techno ???
Certes, du natif C/C++ direct sur API Windows.

Dans tous les cas, aucun prog en interprété, que soit du .net ou autre, ne se livre sans un setup, jamais directement l'exe.

ciao...
BruNews, MVP VC++
0
Cphil51 Messages postés 87 Date d'inscription jeudi 22 juin 2006 Statut Membre Dernière intervention 24 septembre 2007
27 avril 2007 à 17:17
Je ne peut plus t'aider si tu fais du dotNet. Etant donné que je n'aime pas dotNet et que je ne l'utilise pas, je ne peut pas te renseigner.

Les dll de runtime de la libc sont msvcrt*.dll avec * qui contient une partie variable. "msvcrt70.dll" par exemple (msvcrtd*.dll pour le debug).
Pour les dll de runtime de dotNet il suffit d'installer le framework .NET sur tes machines.
0
Geurtrud Messages postés 6 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 30 avril 2007
27 avril 2007 à 18:09
BruNews,


pourrais-tu m'indiquer des liens sur l' ABC de produire des set-up que ce soit pour du natif  C/C++, du managed C/C++, du dot.Net etc.


Merci


Philippe
0
Geurtrud Messages postés 6 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 30 avril 2007
30 avril 2007 à 03:41
effectivement j'ai commencé à consulter l'aide en ligne  pour construire des projets déploiement. Également j'ai trouvé ces liens:

http://www.codeguru.com/Csharp/.NET/net_general/visualstudionetadd-ins/article.php/c7219
http://www.codeguru.com/Csharp/.NET/net_vs_addins/visualstudioadd-ins/article.php/c7245

Merci à tous pour les pistes de solutions.

Philippe
0
Geurtrud Messages postés 6 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 30 avril 2007
30 avril 2007 à 14:36
Brunews,

Lorsqu'on parle de C++ natif je perds parfois mon latin:

A)  C++ avec MFC est - ce encore du natif
B) même question pour le CLR (est -ce cela que l'on appelle du C++ managé?)
C) si je veux construire des écrans windows en natif quel type de projets dois-je choisir dans Visual Studio?

Merci

Philippe
0
Rejoignez-nous