WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Как уменьшить размер exe-шника

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Как уменьшить размер exe-шника
Del опубликован 07-07-2001 15:24 MSK   Click Here to See the Profile for Del   Click Here to Email Del  
Как уменьшить размер exe-шника в C++Builder 5.0 Прога должна быть независимой т.е. использование пакетов надо отключить. Компилю я есстественно в release а не в full debag.
server_mouse опубликован 07-07-2001 16:48 MSK     Click Here to See the Profile for server_mouse  Click Here to Email server_mouse     
Действительно, как? Есть у меня 2 проекта на VC MFC:
один чужой, создаёт 10 окон одновременно, 12K ;
мой, не создаёт вообще никаких окон, голый CWinApp. Relise, Shared DLL -- 20K

ПОЧЕМУ?!!!

Vig опубликован 08-07-2001 08:53 MSK     Click Here to See the Profile for Vig  Click Here to Email Vig     
Вы слышали об утилите UPX?
Уменьшает размер ехешника! И довольно неплохо у нее это получается.
Del опубликован 09-07-2001 09:49 MSK     Click Here to See the Profile for Del  Click Here to Email Del     
Что это за утилтка такая UPX ? И что, оптимизировать иначе как сторонними прогами нельзя ?! Жуть какая-то %-)
server_mouse опубликован 09-07-2001 17:29 MSK     Click Here to See the Profile for server_mouse  Click Here to Email server_mouse     
Мой случай точно не тот. И утилитку я енту знаю. Есть проект с исходами (MFC) и готовый екзэшник. Компилю проект и получаю его размер на 5-10К больше чем у готового...
:-(
BigBob опубликован 11-07-2001 11:29 MSK     Click Here to See the Profile for BigBob  Click Here to Email BigBob     
Пардон за глупый вопрос, связь с библиотеками (статическая/динамическая) в обоих проектах выставлена одинаково? Оптимизация настроена одинаково? Выравнивание элементов данных тоже может влиять на размер.
server_mouse опубликован 11-07-2001 15:43 MSK     Click Here to See the Profile for server_mouse  Click Here to Email server_mouse     
Оптимизации нет, DLL Shared. Правда тот который маленький, собран на VC 5.0
server_mouse опубликован 11-07-2001 15:46 MSK     Click Here to See the Profile for server_mouse  Click Here to Email server_mouse     
А когда маленький после конвертации в формат VC6 и релиз-компиляции он больше уже собраного экзешника.
Del опубликован 16-07-2001 11:08 MSK     Click Here to See the Profile for Del  Click Here to Email Del     
Ну блин, вы можете по-человечески ответить как размер проги оптимизировать?!...ато UPX, MFC, ... загоняете всякими словами...;-)...
Не ну серьёзно, есть тут кто-нибудь кто может чё-то толковое сказать,а?
Vig опубликован 17-07-2001 09:33 MSK     Click Here to See the Profile for Vig  Click Here to Email Vig     
Скажи адрес и я вышлю те UPX.
Она из файла 2.1 МВ сделала 0.5 МВ
Работать с ней проще всего: передаешь в командной строке параметром название ехешника и все!
c:\upx.exe your_file.exe
fgoblin опубликован 19-07-2001 05:54 MSK     Click Here to See the Profile for fgoblin  Click Here to Email fgoblin     
Попробуй добавить в проект файл:
AggressiveOptimize.h

#ifdef NDEBUG
// /Og (global optimizations), /Os (favor small code), /Oy (no frame pointers)
#pragma optimize("gsy",on)

#pragma comment(linker,"/RELEASE")
#pragma comment(linker,"/merge:.rdata=.data")
#pragma comment(linker,"/merge:.text=.data")
#pragma comment(linker,"/merge:.reloc=.data")
#if _MSC_VER >= 1000
// Only supported/needed with VC6; VC5 already does 0x200 for release builds.
// Totally undocumented! And if you set it lower than 512 bytes, the program crashes.
// Either leave at 0x200 or 0x1000
#pragma comment(linker,"/FILEALIGN:0x200")
#endif // _MSC_VER >= 1000
#endif

Del опубликован 21-07-2001 10:38 MSK     Click Here to See the Profile for Del  Click Here to Email Del     
------------
Vig>> кидай мне на мыло: del@xakep.ru
------------
fgoblin>> спасибо на добром слове, я правда пока-что на С++Builder пишу, но всё равно спасибо.
DimaK опубликован 28-12-2001 16:40 MSK     Click Here to See the Profile for DimaK  Click Here to Email DimaK     
Оптимизировать можно в рамках MSVC первая и главная оптимизация set active configuratin <relase> из меию Bild ну и полазь в опциях Project setting закладка c/c++ Optimization
конечно если это mfc то динамическая компиляция еще уменьшит зазмер (не советую использовать :) ) а на счет версии так 6 сироит код покруче!!! про размер 2к незнаю даже на asm win32 у меня меньше 8к не получалось дерзай!
ADK опубликован 29-12-2001 05:19 MSK     Click Here to See the Profile for ADK  Click Here to Email ADK     
Кому интересно, то вроде на codemanual.net/conference видел довольно объёмное рассуждение на эту тему.
Там, кстати, рекомендовалось скачать с M$ библиотеку libtiny.lib по-моему, или типа того, якобы она заменяет стандартную runtime библиотеку VC и для небольших проектов на API весьма полезна. Код становится минимальным, несколько К. Правда, у меня так и не вышло написать там WinMain, поскольку она упорно хотела просто main(). А создатель на сайте уверял, что можно писать Win32 GUI и DLL... Может, кто ещё юзал?
Разберёмся и выложим для загрузки?
Alex SH опубликован 13-01-2001 13:51 MSK     Click Here to See the Profile for Alex SH  Click Here to Email Alex SH     
Кстати, об UPX: не знаю, может у меня версия старая была (2000 года), но под w2k проги, сжатые ею не запускаются. Сразу вылазит сообщение, что память не может быть read по адресу 00000000. Может есть уже ее версия под w2k. И еще: может кто подскажет проги для того, чтобы скрыть содержимое сегмента данных в exe-шнике, а то в троянце смотришь его exe-шник и все видно :-)

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.