Détendez vous un peu :D



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