今天正在看CHM格式文件读取问题,偶然发现一个有趣的问题
这是文件中的16进制原始码
54 30 00 00 00 00 00 00
当读入的程序的结构中的时候发现是
12372
怎么算也不得其果,后来把CHM读入这个地方的代码看了一下..
static int _unmarshal_uint64(unsigned char **pData,
unsigned long *pLenRemain,
UInt64 *dest)
{
UInt64 temp;
int i;
if (8 > *pLenRemain)
return 0;
temp=0;
for(i=8; i>0; i--)
{
temp <<= 8;
temp |= (*pData)[i-1];
}
*dest = temp;
*pData += 8;
*pLenRemain -= 8;
return 1;
}
temp <<= 8;
temp |= (*pData)[i-1];
他居然是从00后一个字一个字读取.呵呵 按照此方法算出的结果...果然如此.索性那DELPHI 7试了一下...果然也是如此...