home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2004 March
/
CMCD0304.ISO
/
Software
/
Freeware
/
Programare
/
nullsoft
/
nsis20.exe
/
Source
/
exehead
/
bin2h.c
< prev
next >
Wrap
C/C++ Source or Header
|
2002-08-02
|
1KB
|
61 lines
/* Generates a .h file from a binary file.
** v1.2 - 3/8/01
** Copyright (C) 1996-2001 Justin Frankel
** Public domain.
*/
#include <stdio.h>
int main(int argc, char *argv[]) {
int length;
FILE *in, *out;
char *outfilename;
char *token;
int total_bytes=0;
if (argc != 4) {
fprintf(stderr,"Usage: bin2h file.dat outfile.h token_name\n");
return 1;
}
in = fopen(argv[1],"rb");
if (!in) {
fprintf(stderr,"Error: file not found\n");
return 1;
}
out = fopen(argv[2],"wt");
if (!out) {
fclose(in);
fprintf(stderr,"Error: could not open output file\n");
return 1;
}
fseek(in,0,SEEK_END);
length=ftell(in);
fseek(in,0,SEEK_SET);
outfilename = argv[2];
token = argv[3];
fprintf(out,"unsigned char %s[%d] = { \n",token,length);
for (;;) {
static int firsttime;
static int linecount;
int c;
if (++linecount > 10) {
linecount = 0;
fprintf(out,",\n ");
}
else if (firsttime) fprintf(out,", ");
firsttime = 1;
c = fgetc(in);
if (feof(in)) break;
total_bytes++;
fprintf(out,"%i",c);
}
fprintf(out,"};\n",token);
fclose(in);
fclose(out);
fprintf(stderr,"%s -> %s (%d bytes)\n\n",argv[1],token,total_bytes);
return 0;
}