Exporter resources WriteFile n'ecrit rien

cyrus458 Messages postés 12 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 10 mars 2006 - 13 janv. 2006 à 20:05
cyrus458 Messages postés 12 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 10 mars 2006 - 14 janv. 2006 à 13:15
Bonjour
hress = FindResource(NULL,"IDR_DATA1",RT_RCDATA);
fhrsrc = LoadResource(NULL,hress);
hFile = CreateFile("C:\\aaa.exe",GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_NEW,NULL,NULL);

SetFilePointer(hFile,0,NULL,FILE_BEGIN);
WriteFile(hFile, LockResource(fhrsrc),SizeofResource(NULL,hress),&nbbwr,NULL);

le programe cree aaa.exe mais n'ecrit rien dessus je ne comprend pas pourquoi.

Pouriez vous me dire ce ki cloche svp?

15 réponses

cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
13 janv. 2006 à 21:32
Lol :)
hFile = CreateFile("C:\\aaa.exe",GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_NEW,NULL,NULL);



CreateFile

Le premier paramètre est une chaine qui est le path du fichier sur
lequel on veut obtenir un handle, ou le nom du fichier sans path c'est
pas grave :)

Et donc tu veux ouvrir le fichier aaa.exe et écrire dedans :)

Mais bon, j'pense pas qu'écrire dans un exe est la meilleure solution pour se faire un executable lol
if(!Meilleur("Joky")) return ERREUR;<
0
cyrus458 Messages postés 12 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 10 mars 2006
13 janv. 2006 à 22:33
Non je veux creer un nouveau fichier et exporte ma resource dedans ac writefile
0
Zootella Messages postés 252 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 5 septembre 2006
14 janv. 2006 à 01:35
Faudrait que tu teste le valeur retourné par chaque fonction pour savoir ou le probléme se trouve..., j'en vois pas en tout cas, esseye de virer le SetFilePointer
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
14 janv. 2006 à 01:38
Mais on écrit pas dans un exe roooo

c'est pas possible ça lol



D'abord on teste hFile si il est valide

if(hFile == INVALID_HANDLE_VALUE)

//Pas bon



Et on continue :)

if(!Meilleur("Joky")) return ERREUR;<
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Zootella Messages postés 252 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 5 septembre 2006
14 janv. 2006 à 02:16
Il veut extraire un exe, qui est en resource dans le programme, sur le disque dur.
donc il faut bien écrire dans aaa.exe...
0
cyrus458 Messages postés 12 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 10 mars 2006
14 janv. 2006 à 09:27
Ou sinon je cree simplement "aaa" et une fois ecrit je le renome en *exe
0
cyrus458 Messages postés 12 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 10 mars 2006
14 janv. 2006 à 09:30
Mais le createfile est bon il cree le fichier mais le writefile n'ecrit rien.

je comprnd pas pourquoi
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
14 janv. 2006 à 09:51
Si le fichier existe déja, hfile sera pas bon (a cause de CREATE_NEW)

Ton SetFilePointer ne sert a rien
0
cyrus458 Messages postés 12 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 10 mars 2006
14 janv. 2006 à 09:53
CREATE_ALWAIS mais meme kand le hFile est bon ca ne marche pas c pas un
probleme d'handle c surtout un prob de writeFile
0
cyrus458 Messages postés 12 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 10 mars 2006
14 janv. 2006 à 09:57
C'est peut etre parce-que mon code est dans un switch.
0
gagah1 Messages postés 509 Date d'inscription samedi 28 juin 2003 Statut Membre Dernière intervention 3 août 2010
14 janv. 2006 à 10:26
Comme Zootella a dis, teste les valeurs retournées par chaque fonction: FindResource, LoadResource, LockResource, SizeofResource pour voir où est le problème.
Sinon essaie ceci:
WriteFile(hFile,(char*)LockResource(fhrsrc),SizeofResource(NULL,hress),&nbbwr,NULL);
0
cs_magma Messages postés 198 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 18 mars 2011
14 janv. 2006 à 12:21
hress = FindResource(NULL, MAKEINTRESOURCE(IDR_DATA1), RT_RCDATA);
0
Zootella Messages postés 252 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 5 septembre 2006
14 janv. 2006 à 12:26
0
gagah1 Messages postés 509 Date d'inscription samedi 28 juin 2003 Statut Membre Dernière intervention 3 août 2010
14 janv. 2006 à 12:46
il peut écrire comme çà:
hress = FindResource(NULL, "IDR_DATA1", RT_RCDATA); s'il n'a pas defini IDR_DATA1 dans la resource.
0
cyrus458 Messages postés 12 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 10 mars 2006
14 janv. 2006 à 13:15
Ca marche il fallait remplacer par ca hress = FindResource(NULL, MAKEINTRESOURCE(IDR_DATA1), RT_RCDATA);

Merci atous.
0
Rejoignez-nous