Page 1 sur 1

[C] Récupérer des ressources dans une DLL

Posté : dim. 09 févr. 2014 17:45
par perfaram
Bonjour à tous
J'utilise une DLL de ressources (créée avec l'outil de tlem) avec l'UDF resources.au3
Mais impossible d'utiliser quelconque ressource : j'arrive à les visualiser grâce à ResHacker, mais impossible d'afficher un image (_ResourceGetAsBitmap), ou d'utiliser un STRING (ou un RC_DATA, le résultat est le même).

Je lis et je cherche depuis vendredi, mais je n'ai jamais réussi à utiliser les ressources.
J'ai lu, notamment, sur le forum français :
- http://www.autoitscript.fr/forum/viewto ... f=11&t=310
- http://www.autoitscript.fr/forum/viewto ... 3093#p3093
- http://www.autoitscript.fr/forum/viewto ... 16&start=0
- http://autoitscript.fr/forum/viewtopic.php?f=11&t=1400
Et tout plein d'autres choses sur le fofo US (et même un peu allemand - malgré mon niveau déplorable :oops: )
Mais je n'y arrivant pas, je m'en remet à vous.

A savoir : J'utilise les icônes de la DLL avec l'UDF ITaskBarList.au3 (_ResourceGetAsBitmap), et les textes sont une traduction (_ResourceGetAsString).

Merci d'avance !
LISBON_res.zip
Voici la DLL (dans un ZIP, le forum veut pas des DLLs brutes :P
(10.34 Kio) Téléchargé 95 fois

Re: [..] Récupérer des ressources dans une DLL

Posté : lun. 10 févr. 2014 00:15
par Tlem
Bonsoir.
Visiblement, vous avez lu les bons sujets. Pour ce que vous voulez faire tout est là : http://www.autoitscript.fr/forum/viewto ... 3093#p3093

Vous nous donnez votre dll, mais pas de code, donc difficile de voir ce qui ne va pas ! Essayez de relire le sujet ci-dessus et commencez par tester des choses simples.

Re: [..] Récupérer des ressources dans une DLL

Posté : lun. 10 févr. 2014 12:29
par perfaram
Voici mon code :
► Afficher le texteUtilisation de resources.au3
Et si je fais _ArrayDisplay($rsa), mon array est vide :shock:

Re: [..] Récupérer des ressources dans une DLL

Posté : mar. 11 févr. 2014 19:16
par perfaram
:cry:
Sinon, j'ai lancé un thread sur le fofo US : http://www.autoitscript.com/forum/topic ... urce-dlls/

Re: [..] Récupérer des ressources dans une DLL

Posté : mar. 11 févr. 2014 21:56
par Tlem
Il y a plusieurs problèmes (3 pour être exact) dans ce que vous essayez de faire.

- Pour commencer, le paramètre de la langue $ResLang n'est pas correct. Vous devez fournir une valeur décimale au lieu de @OSLang qui est la représentation de la valeur hexadécimale de ce que vous devez utiliser.

- Ensuite, le nom de la ressource utilisé n'est pas correct. Vous utilisez @OSLang alors que dans votre dll la ressource se nomme @OSLang & "1" soit pour le cas présent 040C1 (voir capture d'écran ci-dessous).
Test Ressource.au3.png
Et pour finir, votre ressource n'est pas enregistré correctement, car vous l'avez bien nommée 040C1 mais la langue utilisée est l'Anglais (1033) au lieu du Français (1036).

Une fois que vous aurez corrigé ces différents éléments, la ligne de commande devrait être :

Code : Tout sélectionner

Global $rst = _ResourceGetAsString(@OSLang & "1", $RT_RCDATA, Dec(@OSLang), @ScriptDir & "\Res\LISBON_res.dll")
Testé et validé. ^^
Si il y a peu de logiciel qui utilisent ce mode de fonctionnement, c'est qu'il y a une raison. La plupart utilisent des fichiers texte avec une structure plus ou moins différente. Fouillez les applis de votre dossier Program Files et vous verrez. ;)

Re: [..] Récupérer des ressources dans une DLL

Posté : ven. 14 févr. 2014 22:27
par Tlem
Pas très sympa de prétendre ailleurs d'avoir trouvé la solution et de laisser ce sujet sans réponse et de ne pas le fermer !

Je clos.

Re: [C] Récupérer des ressources dans une DLL

Posté : sam. 15 févr. 2014 08:05
par perfaram
@tlem : Je suis désolé, j'ai dû faire une fausse manip' quand j'ai voulu passer en (R).
Dois-je le faire ?

Re: [C] Récupérer des ressources dans une DLL

Posté : sam. 15 févr. 2014 10:21
par Tlem
Trop tard puisque j'ai clos le sujet.

Envoyé depuis mon appareil mobile avec Tapatalk.