hey i wanted to make a function that adds icon to program but i think i got some problems here it corrupts the file but i don't know it's problem hopefully someone here can help me out
Code:
#include <stdio.h>
#include <windows.h>
#define MIN 2
char *ReadFile(char *SzFile,int *BytesCount) {
int fSize;
FILE *pFile;
char *Buffer;
if(!(pFile=fopen(SzFile,"rb")))
return NULL;
fseek(pFile,0,SEEK_END);
fSize=ftell(pFile);
rewind(pFile);
if(!(Buffer=(char*)calloc(fSize,sizeof(char))))
return NULL;
fread(Buffer,fSize,1,pFile);
*BytesCount=fSize;
return Buffer;
}
bool AddIcon(char *SzFile,char *SzIcon) {
HANDLE ih;
char *Buffer;
int fSize=0;
if(!(Buffer=ReadFile(SzIcon,&fSize)) || !(ih=BeginUpdateResource(SzFile,FALSE)))
return false;
if(!UpdateResource(ih,RT_ICON,SzIcon,MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),Buffer,fSize*sizeof(char)))
return false;
if(!EndUpdateResource(ih,FALSE))
return false;
CloseHandle(ih);
free(Buffer);
return true;
}
int main(int argc,char *argv[])
{
if(argc<MIN) {
printf("wrong usage: must be bigger than %d\n",MIN);
return 1;
}
int sucess=0;
for(int i=1;i<argc;i++)
if(AddIcon(argv[i],argv[argc-1])) {
printf("\nadded icon %s to file %s\n",argv[argc-1],argv[i]);
sucess++;
}
printf("we succesfully added %d icons",sucess);
return 0;
}