В примере PEDEMO (пакет FASM) - есть в конце файла такая запись: Код (Text): section '.reloc' fixups data readable discardable Я пробовал компилировать с этой записью и без неё - программа работает без проблем в обеих случаях. Вопрос: в каких случаях нужна эта запись? Эта секция пуста почему-то...
забыл добавить, нужна в случае загрузки PE не по предпочтительной базе, прописанной в заголовке, т.е. например база 0x100000, но файл запускается под win98 где он может быть загружен только по базе >=0x400000, если релоков нет, то такой файл не будет загружен вобще
Надо сказать, что именно секция не обязательно, вполне работает и data fixups end data В отличие от секции ресурсов (.rsrc).
привет, а для ресурсов отдельная секция ведь тоже не обязательна, главное их (data resource\end data) разместить в начале первой секции, или что-то изменилось с тех пор как тут это тестили?
Так можно ж без названия и без описывания секции... Код (Text): ;================================================ format pe gui include '%fasminc%\win32a.inc' ;================================================ data resource end data ;================================================ entry $ ret ;================================================ data import end data ;================================================
bogrus винда ищет секцию .rsrc, поэтому дабы не иметь проблем лучше с названием http://www.wasm.ru/comment.php?toolid=156
oleaut32.dll ищет секцию .rsrc. Если прога никак не использует ресурсы TYPELIB (интересно, кстати, что это за ресурс?), то можно без всяких проблем не использовать эту секцию. Причём абсолютному большинству редакторов ресурсов это сносит крышу. (ExeScope, Restorator, ResHacker, VC++6 не видят, только VS2005 как-то справляется)