Return to bin2c.cpp CVS log | Up to Nevrax / code / tool / bin2c |
File: Nevrax / code / tool / bin2c / bin2c.cpp (download) Revision 1.1, Tue Dec 5 15:02:11 2000 UTC (18 months, 3 weeks ago) by corvazier Branch: MAIN CVS Tags: HEAD no message |
// bin2c.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "stdio.h" #include <stdlib.h> #include <string.h> int main(int argc, char* argv[]) { if (argc<2) { printf ("bin2c [filename.bin] [filename.c]\n"); } else { char sDir[256]; char sPath[256]; char sName[256]; char sExt[256]; _splitpath (argv[1], sDir, sPath, sName, sExt); char sOutput[256]; if (argc>2) strcpy (sOutput, argv[2]); else { _makepath (sOutput, sDir, sPath, sName, ".cpp"); } FILE *pIn=fopen( argv[1], "rb"); if (pIn==NULL) printf ("Can't open %s.", argv[1]); else { FILE *pOut=fopen( sOutput, "w"); if (pOut==NULL) printf ("Can't open %s.", sOutput); else { fprintf (pOut, "/**\n" " * Generated by bin2c.exe\n" " * binfile: %s\n" " */\n" "\n" "extern const unsigned char %s[];\n" "extern const unsigned int %sSize;\n\n" "static const unsigned char %s[] =\n" "{\n", argv[1], sName, sName, sName); unsigned int size=0; while (1) { fprintf (pOut, "\t"); for (int i=0; i<8; i++) { int c=fgetc (pIn); if (c==EOF) break; fprintf (pOut, "0x%02x, ", c); size++; } fprintf (pOut, "\n"); if (i!=8) break; } fprintf (pOut, "};\n\n"); fprintf (pOut, "static const unsigned int %sSize = %d;\n\n", sName, size); fclose (pOut); fclose (pIn); } } } return 0; }