Page 1 sur 1

[ Résolu ] Une image modifiable après création de l'exe...

Publié : ven. 31/oct./2008 23:56
par Necro
Bonjour à tous,

Je travaille sur mon tout nouveau Projet bientôt fini :D et j'ai besoin d'aide pour un dernier petit truc : C'est vraiment la cerise sur le gâteau xD

Sachant qu'une image se trouve dans le repertoire "images\" et qu'elle s'appelle "image.jpg".

Je voudrais, que même après création de l'exe, que si on change cette image, elle se mette à jour sur l'exe.

En gros, j'affiche un GadgetImage sur mon application aevc IncludeBinary "images\image.jpg", je crée l'exe.

Je lance mon exe -> L'image s'affiche : normal.

Je change maintenant le fichier image.jpg par une autre image toujours renommée image.jpg.

Je relance mon exe -> Et bim! j'ai toujours la première image alors que je voudrais la nouvelle :s, svp! help xD

Re: Une image modifiable après création de l'exe...

Publié : sam. 01/nov./2008 0:22
par Backup
Necro a écrit :j'affiche un GadgetImage sur mon application aevc IncludeBinary "images\image.jpg", je crée l'exe.

en clair lorsque tu utilise IncludeBinary tu incorpore ton image a l'EXE
au moment de la compilation !!

après compilation tu as donc un exécutable (*.exe) qui contient ton image en lui même !!

si tu distribue ton *.exe pas besoin de distribuer l'image, puisque celle-ci se trouve inclue, dans le prg !!


maintenant si tu veux changer d'image , cela t'oblige a RECOMPILER !!
en mettant bien sur l'IncludeBinary a jour dans ton code avec le nouveau nom de ta nouvelle image !!

ou alors en incluant avec "IncludeBinary" les 2 images, puis de faire en sorte d'afficher celle que tu veux !!



si maintenant tu veux que n'importe qui puisse changer l'image en mettant la sienne, alors il ne faut pas passer par IncludeBinary
mais tous simplement par un Loadimage !!

dans ce dernier cas, l'image n'est plus inclue dans l'exécutable, mais charger dynamiquement !!

a noter que tu peux loader une image qui s'appelle "toto.bin"


en espérant avoir été clair :)

Publié : sam. 01/nov./2008 0:25
par Cls
Humm je pense que ce n'est pas possible. En fait tu voudrais mettre à jour ton EXE dynamiquement si j'ai bien compris ?

Il existe des solutions pour enregistrer des données dans ton exe, il y a des topics à ce sujet (recherche exe automodifiable il me semble). La limitation vient du fait que tu ne peux enregistrer qu'un nombre limité d'octets. En effet le principe du truc c'est de laisser une zone "vide" dans ton exe, d'y insérer un marqueur et d'écrire à partir de celui ci. Or cette zone est forcément limitée en taille (ou alors tu limites la taille de la nouvelle image).

Dans ton cas, je te conseille d'insérer ton image par défaut dans ton exe, de l'exporter dans ton répertoire images/ au premier démarrage de l'appli et ensuite d'utiliser uniquement cette image exportée (du répertoire donc). Comme ça, même si elle est modifiée, tu retrouves la nouvelle. ;)

Edit : grillé par Dobro ! :D

Re: Une image modifiable après création de l'exe...

Publié : sam. 01/nov./2008 9:31
par Necro
Dobro à compris ^^ (pour le loadimage et le gadgetimage), seulement il faut le charger dans la procédure d'ouverture de la fenêtre si je ne me trompe pas? Et bien je l'ai mis et il ne m'affiche rien, vraiment bizarre ><


EDIT : Sa y'ai sa marche, je vais dès maintenant publier mon logiciel dans "Annonces :p"

Publié : sam. 01/nov./2008 21:38
par nico
Le soldat inconnu a montré que l'on pouvait dynamiquement changé les datas d'un exe, en fait on copie l'exe en modifiant les données contenues dans les DataSection.

Voir ici:
http://www.purebasic.fr/french/viewtopic.php?t=435