关于写二进制文件奇怪问题
为什么写入不同的数据,生成的二进制文件,打开效果不一样?
//实验1:如下代码,写入数据,aa.bin后用VC6.0,UltraEdit 为何打开效果不同?
unsigned char*m_pWriteBuf;//用于中间处理的buf
CFile file;
if (!file.Open(("C:\\aa.bin"),CFile::modeCreate | CFile::modeWrite | CFile::typeBinary))
{
return 0;
}
m_pWriteBuf = NULL;
m_pWriteBuf = new unsigned char[9];
memset(m_pWriteBuf,0,9);
m_pWriteBuf[0] = 0x33;
m_pWriteBuf[1] = 0xFF;
m_pWriteBuf[2] = 0x33;
m_pWriteBuf[3] = 0x33;
m_pWriteBuf[4] = 0x33;
m_pWriteBuf[5] = 0x33;
m_pWriteBuf[6] = 0x33;
m_pWriteBuf[7] = 0x33;
m_pWriteBuf[8] = 0xF0;
file.Write(m_pWriteBuf,9);
file.Close();
if(m_pWriteBuf != NULL)delete m_pWriteBuf;//用于中间处理的buf
//实验2: 只修改写入的数据不同,效果OK,以地址形式显示每Byte数据
m_pWriteBuf = NULL;
m_pWriteBuf = new unsigned char[9];
memset(m_pWriteBuf,0,9);
m_pWriteBuf[0] = 0x33;
m_pWriteBuf[1] = 0xFF;
m_pWriteBuf[2] = 0x16;
m_pWriteBuf[3] = 0x24;
m_pWriteBuf[4] = 0x30;
m_pWriteBuf[5] = 0x58;
m_pWriteBuf[6] = 0xFF;
m_pWriteBuf[7] = 0xFF;
m_pWriteBuf[8] = 0xF0;
file.Write(m_pWriteBuf,9);
file.Close();
if(m_pWriteBuf != NULL)delete m_pWriteBuf;//用于中间处理的buf
[解决办法]
看不到图