Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Загрузить дерево структур из файла (Regshot)


Автор: _Alex 15.11.2008, 11:50
Как ПРАВИЛЬНО загрузить структуры из файла?

Исходник:
http://sourceforge.net/projects/regshot

В общем:
Код

BOOL LoadHive(/*...*/LPHEADFILE FAR * lplpHeadFile,LPSTR FAR * lpHive)
{
//...
*lpHive=MYALLOC(nFileSize);

DWORD nBase=(DWORD)(*lpHive);//??????????????// Вот это косяк! Начало

//nOffSet--начало записи структур в файле
*lplpHeadFile=(LPHEADFILE)(nBase+nOffSet);//??????????????? Продолжение

//Далее содержимое файла записывается в буфер lpHive

ReAlignFile(*lplpHeadFile, nBase);//?????????????????
}

//--------------------------------------------------------------
//ReAlign file,walkthrough chain
void CFileshot::ReAlignFile(LPHEADFILE lpHF, DWORD nBase)
{
LPDWORD lp;
    for(LPHEADFILE lphf = lpHF; lphf != NULL; lphf = lphf->lpnextheadfile)
    {
    lp = (LPDWORD)lphf;
        if((*lp) != 0)
        {
        (*lp) += nBase;
        lp++;
        }
        if((*lp) != 0)
            (*lp) += nBase;
        if(lphf->lpfilecontent != NULL)//I wouldn't find crash bug(loadhive->readfile) in 

1.8.0 if I had added it in that version
            ReAlignFileContent(lphf->lpfilecontent, nBase);
    }
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)