Supprimer des DLLs

Résolu
cs_TT22 Messages postés 22 Date d'inscription mercredi 4 avril 2012 Statut Membre Dernière intervention 9 février 2013 - 12 mai 2012 à 12:15
cs_TT22 Messages postés 22 Date d'inscription mercredi 4 avril 2012 Statut Membre Dernière intervention 9 février 2013 - 14 mai 2012 à 18:06
Salut,

Je suis entrain de faire un programme avec Visual C++ (2010), et mon problème est le suivant : Si je veux lancer mon script sur un autre ordinateur, il faut que les DLLs msvcp100d.dll et msvcr100d.dll soient présentes sur l'ordinateur concerné.
Je ne sais pas à quoi servent ces DLLs, ni d'où elle viennent.

Donc, ma question est la suivante : Comment pourrais-je faire pour que mon programme n'ai plus besoin de ces DLLs ?

Merci d'avance pour vos réponses...

7 réponses

BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
14 mai 2012 à 09:39
Alors tu te passes de tout CRT comme dans mon exemple.


ciao...
BruNews, MVP VC++
3
racpp Messages postés 1910 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 15
14 mai 2012 à 15:28
Salut,
Je viens de jeter un coup d'oeil sur ton code. Ton exécutable dépendra de msvcr100d.dll car tu utilises les fonctions de la CRT comme malloc(), free(), strcpy() etc. Il dépendra de msvcp100d.dll car tu utilises par exemple la classe C++ std::string. Pour intégrer ces fonctions en statique à ton exécutable, vas dans les propriétés de ton projet, puis dans "Configuration Properties" choisis "C/C++" puis "Code Generation". Pour "Runtime Library" choisis "Multi-threaded (/MTd)". A noter que seules les fonctions des DLLs utilisées par ton code qui seront intégrées à ton exécutable. Comme remarqué par BruNews, il parait que tu compiles en Debug. Si tu comptes distribuer ton programme tu dois compiler en Release. Ainsi, ton exécutable sera beaucoup plus petit. Pour le mode Release, choisis "Multi-threaded (/MT)" pour "Runtime Library" dans les options de génération de code vues ci-dessus.
Pour rendre ton exécutable totalement indépendant de ces DLLs, tu dois opter pour la solution proposée par BruNews. Pour cela, tu ne dois pas utiliser les fonctions de la CRT, ni les fonctions C++ (comme new(), delete() ect) ni les classes de la STL. Pour la CRT, tu peux remplacer les fonctions par leurs équivalents en Win32 API. Par exemple, strcpy() par lstrcpy(), malloc() par HeapAlloc() etc.
3
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
12 mai 2012 à 19:34
Tu compiles en debug ???

Regarde ici:
http://www.cppfrance.com/code.aspx?ID=53531

Tu verras qu'on peut compiler avec les binaaires de VC++ et n'avoir aucune dépendance (DLLs a livrer).

ciao...
BruNews, MVP VC++
0
cs_TT22 Messages postés 22 Date d'inscription mercredi 4 avril 2012 Statut Membre Dernière intervention 9 février 2013
13 mai 2012 à 12:26
Désolé, mais je n'ai pas vraiment compris comment ça fonctionne.

Tu peux m'expliquer s'il te plait ?
0

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

Posez votre question
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
13 mai 2012 à 19:52
"un programme avec Visual C++"
Voila qui ne nous dit rien de ce que tu fais.

VC++ est un IDE qui permet d'y faire de l'interprété (tous langages .NET), du natif mais avec surcouches (C++ avec MFC), du C/C++ classique avec CRT, ...

On peut aussi décider qu'on codera tout soi meme (voir lien que je t'ai mis plus haut pour exemple).

ciao...
BruNews, MVP VC++
0
cs_TT22 Messages postés 22 Date d'inscription mercredi 4 avril 2012 Statut Membre Dernière intervention 9 février 2013
13 mai 2012 à 21:16
Ah oui, excuse-moi, j'ai oublié de dire que je faisais du C++
Si tu veux les sources, je fais ça : http://fsp.lecoindaide.com/Sources

Je sais pas trop ce qui appelle ces DLLs, ni comment les enlever.
Après, je préférerais qu'elles ne soient pas utilisées plutôt que de les inclure, parceque ça va augmenter la taille de mon programme (ce que je ne souhaite pas trop).

Mais, je suis ouvert à toutes les solutions
0
cs_TT22 Messages postés 22 Date d'inscription mercredi 4 avril 2012 Statut Membre Dernière intervention 9 février 2013
14 mai 2012 à 18:06
Merci BruNews pour tes explications, et merci à racpp pour les avoir traduites dans un langage que je comprend.
0
Rejoignez-nous