short nFileCount = 0, nFilePos = 0, nFilePos2 = 0;
nFilePos = fileOp.GetPosition();
AfxTrace( _T(" folder files pos %d\n"), fileOp.GetPosition());
fileOp.Write( &nFileCount, sizeof(short));
m_strFolder = _addFile.strFile;
if ( m_strFolder.GetLength() > 0)
{
if ( m_strFolder.GetAt( m_strFolder.GetLength() -1) != _T('\\') )
{
m_strFolder += _T('\\');
}
}
WriteFOLDERCfg( fileOp, _addFile.strFile, nFileCount);
nFilePos2 = fileOp.GetPosition();
fileOp.SeekToBegin();
fileOp.Flush();
fileOp.Seek( nFilePos, SEEK_CUR);
int nAAAA = 0xffff;
fileOp.Write( &nAAAA, sizeof(short));
DWORD dwErr = GetLastError();
fileOp.Flush();
fileOp.SeekToBegin();
fileOp.Seek( nFilePos2, SEEK_CUR);

解决方案 »

  1.   

    把nFilePos2都打印出来看看值是多少.
      

  2.   

                            int nAAAA = 0xffff;
                            fileOp.Write( &nAAAA, sizeof(short));
    你直接写这句 看是否可以
      

  3.   

    virtual void Write( const void* lpBuf, UINT nCount ); 
    这个MSDN中的Write的形式。
    第一个参数表示存储要写的东西的字符串或者字符数组。
    第二个参数表示你要从这个字符串或者字符数组中写多少个字符到文件中。int nAAAA = 0xffff;
    会转换成字符。可以改成int nAAAA = 0x41;试试,写入文件中的应该是字符 A