Во многих темах по уменьшению размера exe и dll файла путем уменьшения выравнивания файла (file flign) и установлению его значения 32. Соответсвенно у меня вопрос: хоть у кого-нибудь получалось создать ЗАПУСКАЕМЫЙ exe с таким выравниванием для WinNT (2000, XP и т.д.). Ну или вообще с выравниванием файла меньшим 512? Ну и по второму выравниванию тоже хотелось бы спросить. У линкера есть опция Section Alignment, по умолчанию она равняется 4096 байт, но её вроде как можно менять (правда уже при 2048 прога не запускается). Может ли кто-нибудь объяснить на что влияет это выравнивание и можно ли его уменьшить (жаль на размер выходного файла не влияет).
у всех кто пробовал получалось ) + у PECompact есть даже такая стандартная опция Влияет на разположение секций в памяти (за счет выравнивания) судя из названия), ну и на размер образа в целом, если меньше стандартного, то в ОС (с XP вроде, пусть поправит тот кто точно помнит) загрузчик откажется грузить, это справедливо для exe/dll Ну и еще нужно добавить то, что толку с этого нет обычно, разве что только NumberOfSections == 1
Скопилириовал я экзешку с file-align=32 и при попытке его запуска, загрузчик радостно сообшил, что моя программа не является приложением Win32...Не знаю мб у вас на других ОС, на других языках и компиляторах такое прокатывало..
Praetor11, у тебя 9x или извращённый линкер, который позволяет поставить filealign != sectionalign при sectionalign < 4096? Для MS Link после link /SUBSYSTEM:WINDOWS/ALIGN:16 /DRIVER foo.obj user32.lib получается вполне рабочий себе EXE-шник.
Винда у меня ХП сп 3, линкер не позволяет ставить filealign > sectionalign, а 32/32 отлично линкует. Я на него вообще не жалуюсь. Он все собирает, вот только не запускается это потом)))