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

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Necro
Messages : 72
Inscription : mar. 23/sept./2008 16:32

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

Message 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
Dernière modification par Necro le sam. 01/nov./2008 10:11, modifié 1 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

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

Message 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 :)
Dernière modification par Backup le sam. 01/nov./2008 0:28, modifié 1 fois.
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Message 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
Necro
Messages : 72
Inscription : mar. 23/sept./2008 16:32

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

Message 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"
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message 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
Répondre