Сжатие запускаемых файлов - часть 2
Рис. 1.4. Настройки программы
Auto run after loading (Автоматический запуск после загрузки) — как только вы открыли файл на вкладке Open File, программа может автоматически начать сжатие, если вы поставили галочку в этом параметре.
Exit when done (Выйти по завершению) — закрыть программу по окончании процесса сжатия.
Max compression (Максимальное сжатие) — вероятность неправильной работы программы при использовании этого параметра увеличивается, но и файл может стать меньше. Можете протестировать программу при максимальном сжатии, и если возникнут проблемы, то убрать галочку с этого параметра.
use Windows DLL loader (Использовать загрузчик Windows ) — существует два загрузчика динамических библиотек: стандартный Windows и оптимизированный для старых компиляторов Borland C++. Мы будем использовать для написания программ Visual C++, поэтому вы должны поставить галочку на этом параметре.
Preserve extra data (Игнорировать дополнительные данные) — в некоторых программах в конце запускаемого файла могут быть какие-то дополнительные данные. Если ASPack попытается их сжать, то эти данные могут стать недоступными. Примером такого файла может быть инсталлятор в виде одного запускаемого файла. В нем вначале идет исполняемый код программы, а в конце — добавленные файлы, которые инсталлятор должен скопировать на компьютер. Именно эти данные иногда необходимо игнорировать и не сжимать.
Теперь давайте разберемся, как работает сжатие. Сначала весь код программы сжимается архиватором. Если вы думаете, что он какой-то "навороченный", то сильно ошибаетесь. Для сжатия используется обычный архиватор, только оптимизированный для сжатия двоичного кода. В конец сжатого кода добавляется код разархиватора, который будет во время выполнения разжимать программу в первоначальное состояние. И в самом конце ASPack изменяет заголовок исполняемого файла так, чтобы при старте сначала запускался разархиватор.
В ASPack алгоритм сжатия очень хороший, а разархиватор достаточно маленький (меньше 1 Кбайт), поэтому сжатие происходит очень сильно, а к результирующему файлу добавляется только один килобайт. Таким образом, программа может сжать файл размером в 1,5 Мбайт в 300—400 Кбайт.
Содержание Назад Вперед