Geurtrud
Messages postés6Date d'inscriptionsamedi 7 avril 2007StatutMembreDernière intervention30 avril 2007
-
27 avril 2007 à 02:30
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 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?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 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
THEwarrior333
Messages postés192Date d'inscriptionvendredi 19 mars 2004StatutMembreDernière intervention30 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>
Cphil51
Messages postés87Date d'inscriptionjeudi 22 juin 2006StatutMembreDernière intervention24 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)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Geurtrud
Messages postés6Date d'inscriptionsamedi 7 avril 2007StatutMembreDernière intervention30 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.
Cphil51
Messages postés87Date d'inscriptionjeudi 22 juin 2006StatutMembreDernière intervention24 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.
Geurtrud
Messages postés6Date d'inscriptionsamedi 7 avril 2007StatutMembreDernière intervention30 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?