Архив ИТ материалов портала

Май 2012
ПВСЧПСВ
 123456
78910111213
14151617181920
21222324252627
28293031   
Обзоры

Уменьшение размера *.EXE файла в Delphi | Советы программное обеспечение

Многие Delphi программисты да и простые пользователи знают, что можно уменьшить размер exe файла, не используя упаковщики и не изменяя функциональность, путём удаления из exe таблицы релокаций. Обычно для этого используют сторонние утилиты и специальные программы. Например StripReloc от Джордона Рассела.

Уменьшение размера файла *.EXE в среде программирования Delphi

В данном совете ПО мы откроем страшную тайну. В среде программирования Delphi 2006 и выше, релоки можно не удалять, а просто не создавать! Так в Delphi 2006 появилась недокументированная директива компилятора {$SETPEFLAGS}. Она позволяет настроить несколько тонких моментов создания нашего бинарника. В первую очередь она интересна тем, что позволяет отключить создание таблицы релокаций. Обратите свое внимание! Не отключайте таблицы релокаций в dll, bpl и др. файлах. Таблица релокации не нужна exe файлу, т.к. он всегда грузится по одному и тому же адресу.
Использование директивы {$SETPEFLAGS} очень простое:
Откройте файл проекта (dpr)
В uses добавьте Windows
Ниже пропишите {$SETPEFLAGS IMAGE_FILE_RELOCS_STRIPPED}
Попробуйте скомпилировать файл в Delphi до добавления этой директивы и после.
Вы сами сможете убедиться, что размер exe уменьшился. В дополнение хотим сказать, что использование SETPEFLAGS этим не ограничивается. У неё есть ещё масса интересных возможностей. Получить их полный список очень просто: Просто откройте модуль Windows
Найдите в нём поиском IMAGE_FILE_RELOCS_STRIPPED
Нашли? Ниже идёт целый список констант, начинающихся с IMAGE_FILE_
Справа идёт комментарий. Для включения нескольких инструкций, используйте or. Вот небольшой пример:
{$SETPEFlAGS IMAGE_FILE_RELOCS_STRIPPED or IMAGE_FILE_DEBUG_STRIPPED or
IMAGE_FILE_LINE_NUMS_STRIPPED or IMAGE_FILE_LOCAL_SYMS_STRIPPED or
IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP}
Что я здесь сделал?
IMAGE_FILE_RELOCS_STRIPPED - отрезали релоки
IMAGE_FILE_DEBUG_STRIPPED - убрали из ехе Debug информацию
IMAGE_FILE_LINE_NUMS_STRIPPED - убрали из exe информацию о номерах строк
IMAGE_FILE_LOCAL_SYMS_STRIPPED - убрали local symbols
IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP - При запуске exe с компакт-диска, флэш накопителя, других извлекаемых из персонального компьютера устройств, считать exe в свап и запустить оттуда. Полезно, если нужно запустить программу с компакта, а потом попросить вставить другой...
IMAGE_FILE_NET_RUN_FROM_SWAP - аналогично предыдущей, только для сетевых дисков. 618">



При копировании информации гиперссылка на сайт TEHNIK.BY обязательна.
Постоянный URL: http://tehnik.by/sovet/po/1461-delphi
 
СВЕЖИЕ IT МАТЕРИАЛЫ ПО ДАННОЙ ТЕМЕ ОТ TEHNIK.BY:


Нашли опечатку или неточность в материалах компьютерного портала Беларуси? Выделите текст, нажмите Shift + Enter

Вирусы за 24 часа

Ремонт ноутбуков

Баннер

Рейтинг антивирусов 2012

Самый лучший антивирус 2012
 

Фотографии программы