Багато, звичайно, знають, що без проблем зменшити розмір exe файлу можна, взагалі не використовуючи ніякі пакувальники і зовсім функціональність не змінюючи, шляхом видалення з таблиці exe самих тільки релокацій.
В о-перше, вона саме тим і цікава, що нам дозволяє створення таблиці релокацій повністю відключити.
Але в нимание! Від таблиці ні в якому разі н е відключайте релокацій в dll, bpl та інших файлах.
А та спользование самої директиви досить просте:
Спочатку про ткройте файл вашого проекту (dpr)
Далі додайте в uses Windows
Далі скомпілювати п випробуйте файл саме до додавання даної директиви. а також і після.
Після чого Ви переконає е с ь. що розмір самої exe відразу зменшився.
Як доповнення необхідно сказати, що саме використання SETPEFLAGS цим всім зовсім не обмежується.
Звісно ж ще маса різних можливостей.
Щоб п олучая повний список їх зробіть наступні дії:
Спочатку про ткройте модуль Windows
Далі шукайте в ньому за допомогою пошук а IMAGE_FILE_RELOCS_STRIPPED
Далі вже йде чималий список констант, які починаю т ся з IMAGE_FILE_
Ось хороший приклад:
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 - ідентично попередній, але призначено винятково для мережевих дисків.