Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
962 connectés 

  FORUM HardWare.fr
  Programmation

  VC++et DLL (runtimes)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

VC++et DLL (runtimes)

n°40219
Kyle_Katar​n
Posté le 15-06-2001 à 19:28:09  profilanswer
 

Avec VC++ et mfc, y'a un moyen (passage en statique ou autre) pour ne pas avoir besoin de mfc42.dll et msvcrt.dll ?

mood
Publicité
Posté le 15-06-2001 à 19:28:09  profilanswer
 

n°40223
gilou
Modérateur
Modzilla
Posté le 15-06-2001 à 19:51:21  profilanswer
 

Si tu as le source des MFC (c'est fourni, non?) tu devrais pouvoir tout recompiler en statique, je pense.
Mais, bon, ton approche me semble bizarre.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°40594
Kyle_Katar​n
Posté le 18-06-2001 à 12:13:42  profilanswer
 

Ce que je souhaiterai c'est distribuer mes exes avec le moins de dll possible. Donc si je défini mon projet comme utiluisant les mfc en statique, j'aurais pas besoin des dll ?

n°40633
BENB
100% Lux.
Posté le 18-06-2001 à 14:29:43  profilanswer
 

Kyle_Katarn a écrit a écrit :

Ce que je souhaiterai c'est distribuer mes exes avec le moins de dll possible. Donc si je défini mon projet comme utiluisant les mfc en statique, j'aurais pas besoin des dll ?




c'est exatement ce qu'il faut faire dans ton cas...

n°40640
antsite
Je me souviens
Posté le 18-06-2001 à 15:06:56  profilanswer
 

Au début tu as un assistant pour créer ta MFC.
A une étape on te demande  
Shared DLL
Static Linked Library.
 
Tu prens l'option Static linked Lib

n°40751
Kyle_Katar​n
Posté le 18-06-2001 à 19:26:35  profilanswer
 

ok merci.
Et quand on a crée en dynamique, y'a moyen de passer enstatique sans se repayer tout le soft à écrire ?

n°41141
Kyle_Katar​n
Posté le 19-06-2001 à 19:06:22  profilanswer
 

alors ?

n°41203
wpk
Posté le 19-06-2001 à 23:46:51  profilanswer
 

sans probleme, dans les settings, tu choisis Use MFC in a Static Library et ca marche.
 
Une petite mise en garde cependant : le fait de linker des dll en statique est un peu crade. Une dll c'est fait pour etre partagee par plusieurs process en meme temps. Si chaque process s'amuse a linker en statique des dll qui pouraient etre communes, tout l'avantage de la factorisation est perdu, ca ne fait qu'encombrer la mem de l'utilisateur avec n fois le meme code.


---------------
"Si ton labeur est dur, et si tes résultats sont minces, rappelle-toi  
n°41382
Kyle_Katar​n
Posté le 20-06-2001 à 16:00:32  profilanswer
 

oui mais distribuer 2 Mo de fichiers juste au cas ou ... C'est un peu lourd aussi

n°41392
seblamb
Posté le 20-06-2001 à 16:10:40  profilanswer
 

wpk a écrit a écrit :

sans probleme, dans les settings, tu choisis Use MFC in a Static Library et ca marche.
 
Une petite mise en garde cependant : le fait de linker des dll en statique est un peu crade. Une dll c'est fait pour etre partagee par plusieurs process en meme temps. Si chaque process s'amuse a linker en statique des dll qui pouraient etre communes, tout l'avantage de la factorisation est perdu, ca ne fait qu'encombrer la mem de l'utilisateur avec n fois le meme code.




 
De toute façon Microsoft à fait un article où il explique que ce n'est pas un toujours vrais, et qu'une dll peut être lancé plusieur fois en mémoire.  
Dans les prochaines versions de windows on ne pourra plus partager la même dll entre plusieurs programmes. Chaque programme aura sa propre dll même si elles sont identiques. Ceci dans un soucis de rendre windows plus stable


---------------
[:seblamb] Moi aussi je veux grater dédé!!!
mood
Publicité
Posté le 20-06-2001 à 16:10:40  profilanswer
 

n°41428
BENB
100% Lux.
Posté le 20-06-2001 à 17:27:16  profilanswer
 

wpk a écrit a écrit :

sans probleme, dans les settings, tu choisis Use MFC in a Static Library et ca marche.
 
Une petite mise en garde cependant : le fait de linker des dll en statique est un peu crade. Une dll c'est fait pour etre partagee par plusieurs process en meme temps. Si chaque process s'amuse a linker en statique des dll qui pouraient etre communes, tout l'avantage de la factorisation est perdu, ca ne fait qu'encombrer la mem de l'utilisateur avec n fois le meme code.




Oui mais...
du point de vue vitesse d'execution, les Dlls sont plus lentes, dans le cas d'un link statique seul le code utile est transfere dans l'executable, et au moins on est sur de ne pas oublier de distribuer la Dll. Sans compter sur toutes ces Dlls dans les repertoires de Windows, dont personne ne sait si elle sont utiles ou restent apres une desinstallation incomplete...
Non vraiment, mieux vaut linker en static a mon avis.

n°41462
Kyle_Katar​n
Posté le 20-06-2001 à 19:05:33  profilanswer
 

ok merci beaucoup !
 
Et dans ce cas là, de quoi à besoin un projet VC++ avec MFC linké en static ? msvcrt.dll mfc42.dll ? aucun des 2 ?

n°41487
wpk
Posté le 20-06-2001 à 20:34:36  profilanswer
 

Kyle> quand tu lui dis de te linker ton proj avec les MFC en statique, t'as pas besoin de specifier les dll a linker, c'est le linker qui va faire le boulot a ta place.
 
BenB> les dll sont plus lentes la premiere fois que tu charge un prog qui en fait usage ensuite, la meme dll est utilise par plusieurs process et puisqu'elle est deja en memoire, tu gagne du temps sur les chargements ulterieurs...

Citation :

Sans compter sur toutes ces Dlls dans les repertoires de Windows, dont personne ne sait si elle sont utiles ou restent apres une desinstallation incomplete...

on n'est jamais oblige de mettre ses dll dans le rep de windows, on peut tres bien les laisser a cote de l'executable.
 
seblamb>

Citation :

De toute façon Microsoft à fait un article où il explique que ce n'est pas un toujours vrais, et qu'une dll peut être lancé plusieur fois en mémoire.  
Dans les prochaines versions de windows on ne pourra plus partager la même dll entre plusieurs programmes. Chaque programme aura sa propre dll même si elles sont identiques. Ceci dans un soucis de rendre windows plus stable


Je vois plus bien alors l'interret d'une dll. Puis cette histoire explique ptetre en partie le fait que XP a besoin d'au moins 256Mo de ram pour un fonctionnement normal.


---------------
"Si ton labeur est dur, et si tes résultats sont minces, rappelle-toi  
n°42064
Kyle_Katar​n
Posté le 22-06-2001 à 15:06:19  profilanswer
 

Ce que je voulais dire c'est "est ce qu'une fois linké en statis il me faut qd même distrib une dll avec le soft ?"

n°42299
Kyle_Katar​n
Posté le 23-06-2001 à 15:03:53  profilanswer
 

C'est bon, j'ai vérifié avec le dependency walker 2.1, y'a plus besoin des runtimes .... y'a bon !!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  VC++et DLL (runtimes)

 

Sujets relatifs
DLL en C?DLL utilisée dans les programmes...
Cherche Dll d''OCR gratos utilisable en C[Visulal C++, DLL] erreur à l'appel de la fonction dll...
[C++] Utilisation d'une fonction d'une DLL ???JAVA et DLL ????
DLL en C et visual BasicDLL
comment tuer une dLL sous IIS ??? 
Plus de sujets relatifs à : VC++et DLL (runtimes)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR