UpdateResource() ICON

Résolu
Utilisateur anonyme - 27 août 2006 à 22:53
 Utilisateur anonyme - 28 août 2006 à 05:04
Bonjour
J'ai deja utiliser plusoeur fois Update resource pour changer des resources du type RCDATA d'un ".exe"
Et la c'est la resourc ICON du ".exe" que je voulait changé et cela ne marche pas et aucune des fonction que j'utilise ne retourne d'erreur.
Voici le code merci de me dire SVP pourquoi la resource ICON n'est pas mise a jour par le nouvelle Icone:
<<
// prepare a l'update de resource
HANDLE BeginUptade=BeginUpdateResource(
"D:\\ert.exe", FALSE);

if(BeginUptade==NULL)printf(
"erreur");

HANDLE hFile=CreateFile(

"D:\\Icon2.ico",

GENERIC_READ | GENERIC_WRITE,

0,

NULL, 

OPEN_EXISTING,

FILE_ATTRIBUTE_NORMAL, 

NULL

);

if(hFile==NULL)printf(
"erreur");

void *buffer=malloc(GetFileSize(hFile, NULL));
DWORD OctectLu;
ReadFile(hFile, buffer, GetFileSize(hFile, NULL), &OctectLu, NULL);
// met dans buffer l'icone en entierif (OctectLu != GetFileSize(hFile, NULL))printf(
"erreur");

int Verif=UpdateResource(
BeginUptade,
RT_ICON, MAKEINTRESOURCE(110),
MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),
buffer,
GetFileSize(hFile, NULL)
);

if(Verif==NULL)printf(
"erreur");

free(buffer);
CloseHandle(hFile);

if(EndUpdateResource(BeginUptade, FALSE)==NULL)printf(
"erreur");

>>

Merci
MaLaDeDeDe 97one 
A voir également:

2 réponses

Utilisateur anonyme
28 août 2006 à 05:04
Ok racpp je donne le lien: 25716 http://www.cppfrance.com/code.aspx?ID=25716
Et il dit bien que le format d'un icône en ressource est un peu différent de celui du fichier
Donc deja je ne pouvais pas réussir a changer l'icone.

Et aussi il y avait encore autre chose qui me bloquer et qui est assez bizarre c'est:
je me suis rendu conte que l'icone d'un .exe avait toujour l'ID 1   :s
Meme si dans le fichier resource je choisissais l'ID 110.
Je l'ai remarqué avec l'utilisation  de FindResource()    : 

parceque cela retourne NULL:
FindResource( LoadLibrary("ChangeMonIcone.exe"),   MAKEINTRESOURCE(110),    RT_ICON);

et cela fonctionne ( ! = de NULL):
FindResource(LoadLibrary("ChangeMonIcone.exe"),  MAKEINTRESOURCE(1),    RT_ICON);

MaLaDeDeDe 97one 
3
racpp Messages postés 1910 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 15
28 août 2006 à 02:57
Salut,
Il parait que tu as trouvé un  code source intéressant sur le site. Si ça t'as permi de résoudre ton problème, n'oublie pas de déposer le lien ici et mettre "Réponse acceptée". Ce sera utile aux autres. Merci.
0