环境:
windows ce4.2 evc++4.0在模拟器下,打开文件后,做了这个操作:
LONG nPos = file.Seek(-sizeof(int),CFile::end);
文件长度22,结果nPos=26.如果把-sizeof(int)改为sizeof(int),nPos=18.好奇怪啊!
而在PPC上,
LONG nPos = file.Seek(-sizeof(int),CFile::end);运行正常,nPos=18.
高手帮忙啊!急!!!!

解决方案 »

  1.   

    CFile::Seek( LONG lOff, UINT nFrom )函数用于在文件内移动到特定的偏移量,
    参数lOff表示指针移动的字节数,nFrom表示指针移动的方式,有三种:CFile::begin,CFile::current ,CFile::end ,分别表示从文件的开头位置,当前位置和末尾位置移动lOff个字节。函数返回值是指针相对于文件开始位置的偏移量。
    如果nFrom是CFile::end的话,那么偏移量lOff必须是负值,如果是正值,则返回文件末尾位置的偏移量。
    int类型是8个字节,所以file.Seek(-sizeof(int),CFile::end);表示从文件末尾向前移动8个字节,指向相对于文件开始位置18个字节偏移量的位置,