Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023
-
18 juin 2007 à 10:52
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023
-
18 juin 2007 à 18:04
ce matin je me suis
confronté à un petit problème (de link ?) sur un
binaire créé sous MS Visual Studio C++.
En gros
j'ai créé le binaire en console qui ne fonctionne que
sur des PC ayant MS Visual d'installé, sinon je me tape une
erreur me disant que mon exe n'est pas valide.... et comme je ne suis
pas un crack de dev sous windows, je ne sais pas vraiment si il faut
activer ou non telle ou telle option... je ne sais pas trop quoi
faire, donc si quelqu'un à la solution je suis preneur (vous
savez sûrement mieux que moi comment résoudre ce
problème) .
Note : Mon binaire utilise une lib static
qui elle même utilise winsock2 :
#include
<winsock2.h>
#pragma comment ( lib , "ws2_32.lib"
)
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 18 juin 2007 à 16:38
Peut-être pas. J'ai fais l'expérience. J'ai renommé mon dll MSVCP80.dll. Il m'envoie bien une erreur mais pas de "DLL manquant". C'est plutôt ceci:
"L'application n'a pas réussi à s'initialiser correctement (0xc0000034). Cliquez sur OK pour arrêter l'application"
Ton prog est en release ? Essais de te passer du RunTime. Pour ça, va dans Projet->Propriétés de ... ->Propriété de configuration->C/C++->Génération de code->Bibliothèque runtime et change pour Multithread (/MT)
Ça devrait générer un exe sans dépendance aux runtimes.
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 18 juin 2007 à 17:28
Ouais ça arrive souvent avec mes lib perso. Normalement, j'ignore l'avertissement sinon tu peux recompiler tes lib en changeant l'option situé à "Projet->Propriété de ...->Propriétés de configuration->C/C++->Avancé->Omettre les noms de bibliothèque par défaut" par "Oui (/Zl)"
il s'agit d'une erreur
d'exécution et elle ne dit pas grand chose sauf que
l'exécutable n'est pas un exe valide......
Pour rappel la
compilation et le link se passent bien, de plus j'arrive à
exécuter ce code sur des PC ayant VS d'installé....
Je
me demande juste si je n'oublie pas de faire un truc .... un link à
ajouter ? une option à cocher ou décocher ?
D'après
ce que j'en ai vu sur le web ce problème est assez récurent
quand on fait un appel à 'system' hors ici je ne fais que du
C++ le plus basique possible et deux trois appels aux fonctions de
winsock2.h
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 18 juin 2007 à 15:56
Ouais ça dit pas beaucoup cette erreur.
On dirait une erreur de runtime. Ton programme est bien en console et programmé en C++ ? Il devrait donc être lié à MSVCP80.dll (si tu utilises VC++ 2005). Cependant, je n'ai jamais vue cette dll ailleurs que sur un PC ayant VC++ 2005 d'installé. C'est peut-être ça.
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 18 juin 2007 à 17:20
Salut,
oki c'est fait.... mais maintenant il me sort que MVCRT est en conflit avec un autre truc et faut que j'utilise /NODEFAULTLIB:library ce que j'ai fais mais rien decidement c'est chiant VS il faut perdre du temp pour rien... ce rien que pour la configuration d'un projet.....
en tout cas un grand merci à toi [auteurdetail.aspx?ID=617077 SAKingdom]
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."