Pourquoi
mon EXE marche sur mon PC et pas sur un autre ?
|
Combien de fois, j'ai vu
cette question posée sur les forums.
Si lorsque vous exécutez votre application sur un poste qui
n'as pas Delphi, et que vous avez
une jolie boite de message qui vous dit qu'il manque un ou plusieurs
runtimes BPL, c'est que vous n'avez pas compilé votre EXE
de la bonne façon.
Pour que votre application soit portable sur un poste vierge, il
faut qu'elle soit compilé sans les paquets d'exécution
(quoi ???)
Clickez sur le menu Projet|Options de
Delphi, et choisissez l'onglet Paquets.
Il faut que le CheckBox"construire avec les paquets d'exécution"
soit décoché comme ceci
:
Si le CheckBox est coché
votre exécutable sera très petit, mais sera dépendant
des BPL (un peu comme les runtimes des exécutables Visual
Basic).
Pour Delphi 6, les runtimes .bpl sont : rtl60.bpl
et vcl60.bpl = 1,87 Mo
Et votre exe fera dans les 40 Ko.
Par contre si le CheckBox
est décoché, votre application est indépendante.
Mais sa taille augmente considérablement.
Elle passe à plus de 380 Ko (pour Delphi 6, application vide).
Ensuite c'est à
vous de voir, si vous voulez fournir, les BPL énormes ou
si vous voulez que votre application soit libre comme l'air.
Comment
puis-je réduire la taille de mon exe compilé
?
|
Cette question aussi reviens
très souvent.
Elle est un peu décrite
dans le premier point de cet article. Mais prenons le cas ou votre
application, pèse 380 Ko.
Déjà, une chose que vous devriez faire, c'est de faire
le ménage dans vos déclarations.
En effet si vous n'utilisez pas certaine classes, et bien effacez
les, vous gagnerez des Ko non négligeables.
Ex : Variants, Messages, etc... (biensur, il faut que votre application
ne les utilise pas)
Ensuite, il faut utiliser
un Compacteur externe que l'on trouve un peu partout sur le net.
Il n'y en as pas qu'un, ils sont soit FreeWare soit ShareWare.
Exemples :
FreeWare
|
UPX
|
|
ShareWare
|
PETITE
|
|
ShareWare
|
PECOMPACT
|
|
FreeWare
|
EZIP
|
|
ShareWare
|
ASPACK
|
|
ShareWare
|
NEOLITE
|
|
ShareWare
|
SHRINKER
|
|
ShareWare
|
PKLITE32
|
|
et d'autres...
Mais, mon préféré
est UPX, non parce qu'il est gratuit, mais parce que je pense que
c'est le meilleur point de vu compression, vitesse et exécution
(c'est une opinion personnelle).
Comme on dit on est jamais mieux servi que par soit même,
alors testez le, vous en jugerais mieux par vous même.
UPX vous fait gagnez facilement 50 % de taille en moins, à
vu d'oeil, ne ralentit pas votre application (je n'ai pas testé
sur un exe de plus de 4 Mo).
Utilisation
d'UPX
|
//
Pour compresser :
upx.exe -9 votreappli.exe (9 est le taux de compression, de 1
à 9)
Vous
pouvez aussi mettre:
upx.exe --best votreappli.exe
pour
une compression optimale
//
Pour décompresser :
upx.exe
-d votreappli.exe
|
Voilà, c'est tout.
PS
: Si vous trouvez des fautes d'orthographes, je suis sur qu'il y
en as une tonne, excusez moi ;-)
J'espère vous avoir
éclaircis certains points.
par
DelphiCool
Haut
de page
|