(re)
Peut-etre cette longue serie de post sur les ressources va-t-elle enfin trouver un denouement heureux ...
J'ai finalement trouvé une fonction, SizeofResource(), qui m'a permis de copier mon .EXE en ressource sur le disque.
J'avais le pointeur grace a LockResource(), il me manquait quelque chose pour determiner la fin du fichier.
Tout heureux de cette decouverte j'ai vite extrait l'EXE et tenté de l'executer.
L'extraction se passe apparemment bien, mais selon la loi de l'emmeredement maximum (si tout semble aller bien c'est que vous avez oublié quelque chose) impossible ensuite de faire fonctionner l'EXE.
J'obtien un message de ce style:
Citation :
Sous Systeme MS-DOS 16 bits
DWINDOWS/SYSTEM32/AUTOEXEC.NT.Le systeme de fichier ne convient pas a l'execution des applications MS-DOS ou Microsoft Windows.Choisissez fermer pour mettre fin a l'application.
|
Voila le code qui extrait la ressource:
Code :
- int i;
- HRSRC res1 = FindResource(NULL,"mailer.exe","EXE" );
- if(res1)
- {
- DWORD taille = SizeofResource(NULL, res1);
- HGLOBAL lres1 = LoadResource(NULL,res1);
- LPVOID fres1 = LockResource(lres1);
- FILE* fd = fopen("mailerclone.exe", "a+" );
-
- for(i=0; i<taille; i++)
- {
- fputc(fres1, fd);
- fres1++;
- }
- fclose(fd);
- }
|
Ne me dites pas que je suis un gros boulet qui fait chi_--_
Repondez moi ... pleazzzzzzzzzzzzzzzzzz
Message édité par maerlin666 le 23-02-2005 à 00:33:41