Taille exécutable

cs_Stormy Messages postés 255 Date d'inscription samedi 20 avril 2002 Statut Membre Dernière intervention 16 janvier 2007 - 21 juin 2004 à 17:21
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 - 9 juin 2005 à 17:53
Y aurait-t-il un moyen de réduire la taille des exécutable compilés C++ histoire d'optimiser l'ensemble. merci pour les informations et ++ à tous.

17 réponses

xarier Messages postés 688 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 19 mai 2005
21 juin 2004 à 19:09
salut moi aussi j'utilise un est c le meilleur !!!!!

UPX il fait 92 ko je peut te l'envoyer sur mail si tu la pas trouve sur google.

j'aait des application qui fesait 5 mo avec UPX 200ko
c super :) essay
Life is Short 8-)
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
21 juin 2004 à 21:39
sinon par default le compilateur, compile en mode DEBUG, il suffit que tu compiles en mode RELEASE et ton exe perdra beaucoup de "poid" !!!
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
xarier Messages postés 688 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 19 mai 2005
21 juin 2004 à 21:48
ya raison lordbob mais meme avec realsed UPX LES REND PLUS PETIT alors c mieux

qu'estce que tu prefaire le meme prog le premier fait 300 Ko le 2eme 32 Ko.

ben moi aussi je l'utilise dans toute mais application.

Life is Short 8-)
0
cs_Stormy Messages postés 255 Date d'inscription samedi 20 avril 2002 Statut Membre Dernière intervention 16 janvier 2007
21 juin 2004 à 22:03
Merci pour votre aide les gars, je vais donc combiner les deux méthodes. Encore merci et ++
0

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

Posez votre question
xarier Messages postés 688 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 19 mai 2005
21 juin 2004 à 22:08
UNe autre chose avec upx il a plusieur option tu peut meme telecharger un interface graphique.

autre chose la meilleur methode de copression c de glisser ton prog directement dans UPX.
si tu ne le trouve pas dit le moi bonne chance
Life is Short 8-)
0
cs_Stormy Messages postés 255 Date d'inscription samedi 20 avril 2002 Statut Membre Dernière intervention 16 janvier 2007
21 juin 2004 à 22:15
Effectivement, après compilation Release (et non Debug) je passe d'une taille de 152 Ko à 24 Ko. Puis, sous UPX, je termine à 10 Ko. Cela fait une très belle réduction. merci à vous deux et ++
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
21 juin 2004 à 22:21
lol je trouve que l'on forme un belle equipe avec Xarier, qu'est ce tu en penses Xarier :) ? lol, bientot un projet a deux !!!
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
xarier Messages postés 688 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 19 mai 2005
21 juin 2004 à 22:34
oui oui j'aimmerai bien je fini mon prog et la on commence. mais j'aimmerais encore plus le creé avec toi ,bumpman,FUNTO,amk,kirua....la liste est long car un travaill d'equipe c toujour super .

Life is Short 8-)
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
21 juin 2004 à 22:36
kan tu veux, tu nous reunis tous un soir sur un chat, on en discute tous ensemble... mais la on va ptete arreté de lui polluer son message sur le forum, lol !!!
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
xarier Messages postés 688 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 19 mai 2005
21 juin 2004 à 22:53
me revoila j'ai oublie de dire un trucs si tu utilise VC++7 il ne faut BIEN relger les option de compilation car des fois tu change les options ton exe deviend plus petit mais le prob c qu'il ne marche sous win98 que avec des dll (presque 2MO).
Life is Short 8-)
0
cs_Stormy Messages postés 255 Date d'inscription samedi 20 avril 2002 Statut Membre Dernière intervention 16 janvier 2007
21 juin 2004 à 23:16
Lol manifestement, vous vous connaissez bien tout les deux!
Un dernier truc : Le fichier c:\WINNT\system32\ n'existe pas sur XP. Or, l'equivalent c'est quoi?

Peut être un truc du genre:
c:\WindowsXP\system32\
c:\WinXP\system32
Encore merci ++
0
xarier Messages postés 688 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 19 mai 2005
21 juin 2004 à 23:23
l'equivalent c c:\windows\system32
Life is Short 8-)
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
21 juin 2004 à 23:28
desoler, je ne suis pas daccord... si il parle du repertoire de windows, et/ou system, alors ce repertoire peut etre different pour chaque ordinateur, puisque choisit par l'utilisateur lors de l'installation... mais pour trouver leur chemin, il exite deux API fournit par Windows: GetSystemDirectory() et l'autre dont je me rapel plus :blush) ... pour plus d'info il faut allé voir dans la MSDN !!!
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
xarier Messages postés 688 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 19 mai 2005
21 juin 2004 à 23:34
oui c la bonne api mais j'ai lui filler le chemin leplus courant
Life is Short 8-)
0
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 3
22 juin 2004 à 05:57
Bonjour,

Tout simplement, pour le repertoire de windows :
GetWindowsDirectory.

Matt...
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
22 juin 2004 à 08:41
exact, je n'étais plus sur alors au lieux de dire une betise...
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
9 juin 2005 à 17:53
ce forum date un peu mais je faisais des recherches sur ce sujet et je suis tombé la.

En gros vous proposez 2 méthodes, la release (c'est pas une
optimisation mais ca vire juste les infos de déug, inutiles pour une
utilisation normale) et l'UPX (ca je connaissais)

il existe d'autres solutions...

sous VC 6:

dans les options du projet, onglet c++, code generation: choisir dll multithreadée

dans la liste d'options, juste en dessous, on rajoute : /ALIGN:16384 (marche pas tjs)

On vire la fonction WinMain (ou main() ). Comme il faut bien un point d'entrée au prog, on met tout en haut de main.cpp:

#pragma comment(linker, "/entry:myWinMain")

et on remplace la ligne WinMain(touscesfoutusparametresalanoix){ par

__declspec(naked) int __stdcall myWinMain(){

on vire TOUT ce qu'il y a dans main et on remplace par:



__asm {
push 0
call dword ptr GetModuleHandle
push eax
push offset AppDlgProc
push 0
push IDD_APP
push eax
call dword ptr DialogBoxParam
push 0
call dword ptr ExitProcess
ret 0
}

avec:

BOOL CALLBACK AppDlgProc(HWND hdlg, UINT mssg, WPARAM wParam, LPARAM lParam)
{..le meme code que dans windows... les initialisations, tout le tintouin, les timers, l'affichage,...}

j'ai pas fait le test notez bien

En tout cas merci Brunews, la moitié dee ces astuces viennent de lui

pour finir, UPX....

++

ad


_______________________


Omnia vincit labor improbus
0
Rejoignez-nous