begin process at 2012 05 29 01:02:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

comment passer une icone en "raw binary data"


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

comment passer une icone en "raw binary data"

samedi 24 juillet 2004 à 13:07:13 | comment passer une icone en "raw binary data"

youpiyoyo

je cherche a mettre une icone dans une resource le probleme c ke j'ouvre l'ico comme ca

HICON Ico=ExtractIcon(MainhInstance,szFile,0);

ou szFile est ouvert par GetOpenFileName

bref dans mon

result = UpdateResource(hUpdateRes, // update resource handle
RT_ICON, // change dialog box resource
"ico", // dialog box name
MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), // neutral language
Ico, // ptr to resource info
SizeofResource(hExe, hRes)); // size of resource info.

dans msdn il est spécifié ke LPVOID lpData, "Note that this is the raw binary data stored in the executable file, not the data provided by LoadIcon, LoadString, or other resource-specific load functions. All data containing strings or text must be in Unicode format; lpData must not point to ANSI data.

quelk'1 aurait une suggestion???

youpi :)
samedi 24 juillet 2004 à 15:17:31 | Re : comment passer une icone en "raw binary data"

ShareVB

salut

moi je ferais plutôt :

HMODULE hMod = LoadLibrary(szFile);
HRSRC hres = FindResource(hMod,MAKEINTRESOURCE(0),RT_ICON);
HGLOBAL hGlob = LoadResource(hMod,hres);
LPVOID lpRes = LockResource(hGlob);

//le reste de ton code
result = UpdateResource(hUpdateRes, // update resource handle
RT_ICON, // change dialog box resource
"ico", // dialog box name
MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), // neutral language
lpRes, // ptr to resource info
SizeofResource(hMod, hres)); // size of resource info.
FreeLibrary(hMod);

voilà

ShareVB
samedi 24 juillet 2004 à 15:22:17 | Re : comment passer une icone en "raw binary data"

youpiyoyo

ouai mais j'ouvre une icone genre x.ico

j'avais testé mais il me met l'application ou la dll n'est pas une image windows valid

findressource c pour unikement une dll ou un exe je crois

je suis entrain de voir avec un fopen en binaire voir si ca marche


youpi :)
samedi 24 juillet 2004 à 15:32:31 | Re : comment passer une icone en "raw binary data"

ShareVB

salut

dans ce cas, regarde à "Icons in Win32" sur MSDN : cela montre le format des icones en ressource et .ico...

ShareVB
samedi 24 juillet 2004 à 15:37:28 | Re : comment passer une icone en "raw binary data"

youpiyoyo

ok je vais regarder mais sans prétention car j'ai deja bien fouiller
youpi :)
samedi 24 juillet 2004 à 19:32:52 | Re : comment passer une icone en "raw binary data"

youpiyoyo

bon j'y suis toujours pas arriver j'ai fas ca

char* ico;
FILE* file=fopen(szFile,"rb");
FILE* filedest=fopen("dest.ico","w");
fpos_t pos;
if(fseek(file, 0,SEEK_END)!=0)MessageBox(0,"fseek erreur",0,0);
else
{
if( fgetpos( file, &pos ) == 0 )
{

ico=(char*) malloc((size_t)pos);
fseek(file, 0,SEEK_SET);
fread(ico, sizeof( char ), (int)pos, file );
//fwrite(ico,sizeof( char ), (int)pos,filedest);
}
}
fclose(file);
fclose(filedest);

ico devrait donc contenir en binaire les datas de l'ico,

mais kan je passe a

result = UpdateResource(hUpdateRes,
RT_ICON,
szTitre,
MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),
ico,
sizeof(ico));

ca me met une merde dans les resource.. help!!
youpi :)
mercredi 29 septembre 2004 à 15:11:02 | Re : comment passer une icone en "raw binary data"

robinfinity

Hi!
Sorry for writing in English, but I not good at all in French, even if I can understand a little bit of it...

The above code is almost okay to pass binary data from an icon to resource, but the problem is that you don't need to pass all the data from an ICO to the resource.

I have an icon file which has only one image, size 16x16, 256 colors, and I realized that the "good" data begins at the 22th byte in the ico file, so my code looks like this:

HANDLE hUpd=BeginUpdateResource(_T("_.exe"),FALSE);
UpdateResource((HMODULE)hUpd, RT_ICON,MAKEINTRESOURCE(1), 0x409, (LPBYTE)(ico+22), pos-22);
EndUpdateResource(hUpd, FALSE);

This will not work for other icons than size 16x16, 256 colors, or icon files containing multiple formats.

To find the correct code, I did a very "ugly" thing: made a loop from x=1 to pos (the size of the icon file) and took (pos-x) bytes from (ico+x) and copied them to the resource.
UpdateResource((HMODULE)hUpd, RT_ICON,MAKEINTRESOURCE(1), 0x409, (LPBYTE)(ico+x), pos-x);
Than created a sepparate exe file (opened the modified exe binary, and created a new binary file to copy its contents) for each iteration (x.exe) and than verified which one has a good icon :))

Thank you very much for idea!


Cette discussion est classée dans : icone, data, green, resource, ico


Répondre à ce message

Sujets en rapport avec ce message

Pb avec une fonction windows... [ par Steak ] j'ai un petit probleme avec la fonction NT UpdateResource... voila ce que dit le sdk win32 : BOOL UpdateResource( HANDLE hUpdate, // update-file handl Exporter une resource de tipe DATA [ par cyrus458 ] Bonjour.Comment fait on pour exporter une resource d'un fichier et l'enregistrer sur le disque dur? FindResource + LoadResource et apres??? intégrer une icone a un programme api. [ par poulpixx ] Je voudrais savoir comment, une fois que j'ai mon fichier toto.ico,intégrer ce toto.ico a mon programme une fois compilé(c'est a dire que mon executab Comment mettre une icone à un prog ? [ par KissyFroth ] bon je pense que tout est ds le titre : je voudrais simplement mettre une icone à une application : faut-il préciser cela dans les options de compilat A l'aide (Re prbl icone) [ par KissyFroth ] Bon ds mon precedent message, je demandais comment on mettait une icone a l'executable généré par le compilateur. j'ai eu une reponse qui a un peu tro PROBLEME EN resource Script (.rs) (visual c++) [ par elboras ] PROBLEME EN resource Script (.rs) Salut, j'ai un problême avec VISUAL C++ Je créé un nouveau fichié et je clique sur TOOLS , APP STUDIO . Ensuite quan problème avec la transmission de charactères via ODBC [ par suzane ] Salut!j'utilise ODBC driver pour me connecte a une base de données, je veux donc stocké des chaînes de caractères en Arabe,alors je doit désactivé l'o Mettre une fenette en premier plan et l'activer [ par atao ] QQun connait il une façon plus élégnate pour mettre une fenette en premier plan et l'activervoid MettreFenetreDevant(HWND hwndDlg){// car si elle est fonction de recuperation de couleur rgb [ par Alucards ] Salut tout le monde , j'utilise des loader de texture bmp/ jpg/ tga/ pcx et ceci me cree une texture au format unsigned byte* data[largeurimage * hau


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,137 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales