Bonjour,je n'arrive pas à utiliser une chaine de caractère stockée dans un fichier ressources.
(je sais qu'on peut s'en passer mais j'aime bien comprendre)
je travaille avec masm32 et l'IDE RadAsm
Premier essai avec LoadString et STRINGTABLE
********************************************
contenu du fichier .rc;
----------------------
#define IDS_1 100
#define IDS_2 200
STRINGTABLE
BEGIN
IDS_1 "phrase n°1\0" ;\0 pour le 0 de fin de chaine
IDS_2 "phrase n°2\0"
END
extrait code asm ;
-----------------
.data
IDS_1 equ 100
IDS_2 equ 200
buffer BYTE 20 dup(0)
titre BYTE "c'est compliqué",0
.....
(hWnd est le handle de mon prog)
invoke LoadString,hWnd,IDS_1,OFFSET buffer,20 ;me renvoie toujours 0 au lieu du nombre de caractere mis dans buffer
invoke MessageBox,hWnd,OFFSET buffer,OFFSET titre,0 ;d'ou pas d'affichage de "phrase n°1"
deuxième essai avec FindResource et RCDATA:
*******************************************
fichier .rc;
-----------
5000 RCDATA
{
"phrase n°1 \0"
}
extrait code asm:
----------------
.data
HDres dword ?
PointeurRes dword ?
PointeurFirstByteRes dword ?
.....
invoke FindResource,hWnd,5000,RT_RCDATA ;idem,me renvoie 0
mov HDres,eax
invoke LoadResource,hWnd,eax ;du coup ça va moins bien ...
mov PointeurRes,eax
invoke LockResource,eax
mov PointeurFirstByteRes,eax
où est mon erreur ?
merci de votre aide,
PARKI