Ressource (presque résolu)[résolu] - C - Programmation
Marsh Posté le 22-02-2005 à 23:24:21
Tu veux faire quoi ?
Copier un fichier ?
Y a quand même plus simple.
Enfin t'as essayé déjà d'écrire au début du fichier (w) et en binaire (b)
Et aussi fres1 est un pointeur et pas un caractère donc c'est mal parti ...
Marsh Posté le 22-02-2005 à 23:28:37
Je veux extraire un fichier un mis en ressource du programme pour le copier sur le fichier.
Citation : Enfin t'as essayé déjà d'écrire au début du fichier (w) et en binaire (b) |
???
Marsh Posté le 22-02-2005 à 23:31:15
Ben ici :
fopen("mailerclone.exe", "a+" );
Ca serait pas mieux ça :
fopen("mailerclone.exe", "wb" );
Marsh Posté le 22-02-2005 à 23:34:02
Mais y a aussi le fait que tu copies le pointeur dans le fichier.
Marsh Posté le 22-02-2005 à 23:38:44
t'as essayé de mettre :
fputc(*fres1, fd);
Après je sais pas pour le reste car j'ai pas trop l'habitude des fonctions de microsoft ...
Marsh Posté le 22-02-2005 à 23:45:15
ah je copie une addresse au lieu d'une donnée.
effectivement ca peut etre embetant
Comment faire, j'ai essayé *fres1 mais ca mlarche pas
(j'ai dis une connerie ?)
Marsh Posté le 22-02-2005 à 23:46:40
mince j'ai a chaque fois un message de retard
ca marche roujours pas la j'ai un probleme de compilation
invalid use of void expression
Marsh Posté le 22-02-2005 à 23:52:18
ben après je suis pas un spécialiste de l'API windows donc je sais pas trop, mais pour ton erreur il suffit de mettre :
char *fres1 = (char*)LockResource(lres1);
Marsh Posté le 22-02-2005 à 23:57:25
je n'en reviens pas
CA MARCHE
Je ne pourrais jamais te remercier assez.
Je butte sur les ressource depuis des lustres, chaque fois je tombe sur un os dans mon code.
encore merci ce soir pour la premiere fois depuis longtemps je vais pouvoir dormir
Une derniere chose peut tu m'expliquer le pourquoi de cette erreur
que je me couche moins bete ce soir
je ne voudrais pas abuser de ta generosité
merci encore
Marsh Posté le 23-02-2005 à 00:00:40
Pour le char *fres1 = (char*)LockResource(lres1); ?
Ben en fait autrement il ne sait pas si *fres1 correspond à 1, 2 ,4, ... octets.
Marsh Posté le 22-02-2005 à 23:06:08
(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:
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:
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