#define TEXT(X) (X)
typedef unsigned __int64 u64;
typedef unsigned __int32 u32;
typedef unsigned __int16 u16;
typedef unsigned __int8 u8;
void OutPutData(u8 *pBuffer, u32 uSize, const char *szBufferName)
{
char szBuffer[1000];
if (uSize == 0)
return;
sprintf(szBuffer, "d:\\%s.c", szBufferName);
//DeleteFile(szBuffer);
FILE *fp = fopen(szBuffer, TEXT("wb"));
if (fp)
{
sprintf(szBuffer, "\r\nunsigned char %s[%d] = {\r\n ", szBufferName, uSize, szBufferName, uSize);
fwrite(szBuffer, strlen(szBuffer), 1, fp);
u32 uIndex = 0;
while (uIndex < uSize)
{
if (uIndex && (uIndex % 16) == 0)
{
sprintf(szBuffer,"\r\n ");
fwrite(szBuffer, strlen(szBuffer), 1, fp);
}
//printf("0x%02X,", pBuffer[uIndex]);
if (uIndex == uSize - 1)
{
sprintf(szBuffer, "0x%02X", pBuffer[uIndex]);
}
else
{
sprintf(szBuffer, "0x%02X, ", pBuffer[uIndex]);
}
fwrite(szBuffer, strlen(szBuffer), 1, fp);
uIndex++;
}
sprintf(szBuffer,"\r\n};\r\n");
fwrite(szBuffer, strlen(szBuffer), 1, fp);
fclose(fp);
fp = NULL;
}
}
调用示例
OutPutData(cbBuffer, 32, "cbBuffer");
效果如图