Сжатие запускаемых файлов
Самый простой способ уменьшить размер приложения — использование программы для сжатия файлов. Лично я очень люблю ASPack , которую вы можете скачать в Интернете по адресу www.aspack.com или скопировать с компакт-диска из директории Programs (файл установки называется ASPack.exe). Она прекрасно сжимает исполняемые файлы E ХЕ и динамические библиотеки DLL.
Запустите программу ASPack . exe , и перед вами откроется окно (рис. 1.1) приглашения к установке.
Достаточно выбрать путь, куда будут скопированы файлы, и нажать кнопку Start. Через пару секунд программа будет установлена на компьютере и запустится.
Рис. Главное окно программы ASPack
Настроек у ASPack не так уж много и расположены они на вкладке Options (рис. 1.4).
Давайте рассмотрим, для чего они нужны.
- Compress resources (Сжимать ресурсы) — если вы используете при написании программ MFC и создаете в ресурсах диалоговые окна программ или храните там растровые картинки, то в исполняемом файле будет соответствующая секция достаточно большого размера. Из моей практики могу сказать, что больше всего места отнимают именно картинки, потому что они хранятся без сжатия. Если установить этот параметр (поставить галочку), то программа будет сжимать эту секцию.
- Create backup copy
(Создавать резервную копию) — перед началом процесса сжатия
программа будет создавать резервную копию. Старое содержимое будет
располагаться в файле с таким же именем и в той же папке, но с
расширением bak. Например, если вы сжимали файл mypro - gram.exe, то
резервная копия будет иметь имя myprogram.bak.
Я рекомендую вам всегда ставить этот флажок, потому что ASPack иногда ведет себя нестабильно, и программа может быть испорчена. В этом случае вы можете восстановить старый файл из резервной копии с помощью обратной замены расширения bak на ехе. Если вы не ставите флажок, то я рекомендую самостоятельно делать резервную копию файла.
Если у вас есть полный исходный код программы, то испорченный файл можно перекомпилировать. Но если вы сжимаете чужую программу, то без резервной копии восстановление невозможно, поэтому не надо создавать себе лишние проблемы.
После того как программа произвела сжатие, проверьте ее на работоспособность. Чаще всего, если программа запустилась, то в дальнейшей работе проблем не будет. Очень редко происходят ошибки при открытии определенных окон, но они бывают. Перед поставкой клиенту окончательной версии тщательно протестируйте каждую возможность вашего продукта. Если вы создаете коммерческий проект, то вряд ли кому-то понравится сообщение об ошибке.
- 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 попытается их сжать, то эти данные могут стать недоступными. Примером такого файла может быть инсталлятор в виде одного запускаемого файла. В нем вначале идет исполняемый код программы, а в конце — добавленные файлы, которые инсталлятор должен скопировать на компьютер. Именно эти данные иногда необходимо игнорировать и не сжимать.