Page 1 sur 1

[R] Utiliser un jpg mis dans une dll

Posté : jeu. 11 juin 2009 23:05
par TaPuZ
Bonsoir.
Je tiens d'abord à signaler que j'ai lu TOUS les liens du forum, du forum anglais, et de l'aide ayant comme mot clef "dll".
J'ai également essayé de comprendre comment utiliser reshacker pour inclure mes ressources dans mon exe à la compilation; histoire de faire autrement.
Et mon constat est cuisant. Je n'y entrave queue de chi....
Alors si quelqu'un pouvait m'expliquer avec un exemple simple, je lui en serait grandement reconnaissant.

Disons que j'ai une image, toto.jpg.
Je l'inclue dans une dll, toto.dll
Comment, dans mon code, pouvoir afficher un splashimage avec toto.jpg inclus dans toto.dll?
S'il vous plait, aidez-moi à retrouver le sommeil...
:)

Re: [..] Utiliser un jpg mis dans une dll

Posté : jeu. 11 juin 2009 23:36
par jbnh

Re: [..] Utiliser un jpg mis dans une dll

Posté : jeu. 11 juin 2009 23:51
par TaPuZ
Merci de prendre du temps pour moi, ça me touche.
J'avais déjà lu cela, et malgré une relecture, je ne comprends pas comment en déduire quoique ce soit... :oops:

A priori, il faut, pour du jpg, passer par l'UDF de Zedna.

Mais je ne comprends pas comment bien écrire :

#AutoIt3Wrapper_run_after=ResHacker.exe -add %out%, %out%, test_1.txt, rcdata, TEST_TXT_1, 0

Où doit se situer ResHacker?
test_1.txt doit-il comprendre le chemin d'origine du fichier?
A quoi correspond rcdata?
A quoi correspond test_txt?

En reprenant mon exemple de tout à l'heure

J'ai c:\images\toto.jpg
c:\code\code.au3
c:\res\ResHacker.exe

Quelles lignes dois-je rajouter dans mon code, pour pouvoir afficher un splash image de toto.jpg, avec cette dernière image incluse dans code.exe, version compilée de code.au3?

De même où doivent se situer les differents fichiers au moment de la compilation?

Merci d'avance.

Re: [..] Utiliser un jpg mis dans une dll

Posté : ven. 12 juin 2009 00:27
par Tlem
Voilà, voilà, c'était le temps de faire ça propre. ;)

J'ai joint au message 3 exemples complet avec les explications, 2 softs (ResHacker.exe et upx.exe), un UDF indispensable (Resources.au3), une Dll avec une image jpeg (TestDll.dll que j'ai créé avec RDG.exe :mrgreen: ).

Le premier exemple montre comment faire un Splash Screen personalisé pour utiliser directement un fichier jpg d'une Dll.

Le deuxième exemple montre comment faire pour extraire la ressource de la Dll et l'utiliser avec SplashScreenImage.
Cela revient presque au même que d'utiliser le FileInstall, sauf que la ressource est dans la Dll. ;)

Le troisième exemple montre comment ce passer de la Dll, en ajoutant la ressource directement à l'exe compilé.

.

Re: [..] Utiliser un jpg mis dans une dll

Posté : ven. 12 juin 2009 00:38
par TaPuZ
Rhoooooooo!
Magique!
Tout s'éclaire!
Merci beaucoup!
Je vais enfin pouvoir mettre ma petite balise [R], et passer à l'embellisement de mon code!!!
Merci encore 1000 fois! :D :D :D :D

Re: [..] Utiliser un jpg mis dans une dll

Posté : ven. 12 juin 2009 00:39
par Tlem
TaPuZ a écrit :Où doit se situer ResHacker?
Dans le répertoire du script.
TaPuZ a écrit :test_1.txt doit-il comprendre le chemin d'origine du fichier?
Oui, mais attention au nom de dossier avec espace. Un chemin relatif fonctionne aussi.
TaPuZ a écrit :A quoi correspond rcdata?
Tssss Tsssss Tssss, vous n'avez pas tout lu.
http://www.autoitscript.fr/forum/viewto ... f=11&t=310
Juste après : "Voici les principaux type de ressource utilisées :"
TaPuZ a écrit :A quoi correspond test_txt?
C'est le nom de la ressource (celui qui sera utiliser pour appeler la ressource).
TaPuZ a écrit :De même où doivent se situer les differents fichiers au moment de la compilation?
Personnellement, je vous conseil de mettre les ressources dans le même répertoire que votre script. Pour plus de clarté, vous pouvez créer un sous dossier \Res (pour ressource ;)) et lorsque vous devez utiliser le fichier, donnez le chemin relatatif : .\Res\autoit.jpg

Re: [R] Utiliser un jpg mis dans une dll

Posté : mer. 25 nov. 2009 00:09
par DakinQuelia
Bonjour,

Je tiens à remercier Tlem pour la solution, ça m'a assez bien aidé. Toutefois, après des essais, je constate que les fichiers PNG ne sont pas supportés. Dommage. :)

A bientôt,