Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.128.203.143] |
|
Сообщ.
#1
,
|
|
|
Как уменьшить размер exe-шника в C++Builder 5.0 Прога должна быть независимой т.е. использование пакетов надо отключить. Компилю я есстественно в release а не в full debag.
|
Сообщ.
#2
,
|
|
|
Действительно, как? Есть у меня 2 проекта на VC MFC:
один чужой, создаёт 10 окон одновременно, 12K ; мой, не создаёт вообще никаких окон, голый CWinApp. Relise, Shared DLL -- 20K ПОЧЕМУ?!!! |
Сообщ.
#3
,
|
|
|
Вы слышали об утилите UPX?
Уменьшает размер ехешника! И довольно неплохо у нее это получается. |
Сообщ.
#4
,
|
|
|
Что это за утилтка такая UPX ? И что, оптимизировать иначе как сторонними прогами нельзя ?! Жуть какая-то \%-)
|
Сообщ.
#5
,
|
|
|
Мой случай точно не тот. И утилитку я енту знаю. Есть проект с исходами (MFC) и готовый екзэшник. Компилю проект и получаю его размер на 5-10К больше чем у готового...
:-( |
Сообщ.
#6
,
|
|
|
Пардон за глупый вопрос, связь с библиотеками (статическая/динамическая) в обоих проектах выставлена одинаково? Оптимизация настроена одинаково? Выравнивание элементов данных тоже может влиять на размер.
|
Сообщ.
#7
,
|
|
|
Оптимизации нет, DLL Shared. Правда тот который маленький, собран на VC 5.0
|
Сообщ.
#8
,
|
|
|
А когда маленький после конвертации в формат VC6 и релиз-компиляции он больше уже собраного экзешника.
|
Сообщ.
#9
,
|
|
|
Ну блин, вы можете по-человечески ответить как размер проги оптимизировать?!...ато UPX, MFC, ... загоняете всякими словами...;-)...
Не ну серьёзно, есть тут кто-нибудь кто может чё-то толковое сказать,а? |
Сообщ.
#10
,
|
|
|
Скажи адрес и я вышлю те UPX.
Она из файла 2.1 МВ сделала 0.5 МВ Работать с ней проще всего: передаешь в командной строке параметром название ехешника и все! c:\upx.exe your_file.exe |
Сообщ.
#11
,
|
|
|
Попробуй добавить в проект файл:
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 |
Сообщ.
#12
,
|
|
|
------------
Vig>> кидай мне на мыло: del@xakep.ru ------------ fgoblin>> спасибо на добром слове, я правда пока-что на С++Builder пишу, но всё равно спасибо. |
Сообщ.
#13
,
|
|
|
Оптимизировать можно в рамках MSVC первая и главная оптимизация set active configuratin <relase> из меию Bild ну и полазь в опциях Project setting закладка c/c++ Optimization
конечно если это mfc то динамическая компиляция еще уменьшит зазмер (не советую использовать ) а на счет версии так 6 сироит код покруче!!! про размер 2к незнаю даже на asm win32 у меня меньше 8к не получалось дерзай! |
Сообщ.
#14
,
|
|
|
Кому интересно, то вроде на codemanual.net/conference видел довольно объёмное рассуждение на эту тему.
Там, кстати, рекомендовалось скачать с M$ библиотеку libtiny.lib по-моему, или типа того, якобы она заменяет стандартную runtime библиотеку VC и для небольших проектов на API весьма полезна. Код становится минимальным, несколько К. Правда, у меня так и не вышло написать там WinMain, поскольку она упорно хотела просто main(). А создатель на сайте уверял, что можно писать Win32 GUI и DLL... Может, кто ещё юзал? Разберёмся и выложим для загрузки? |
Сообщ.
#15
,
|
|
|
Кстати, об UPX: не знаю, может у меня версия старая была (2000 года), но под w2k проги, сжатые ею не запускаются. Сразу вылазит сообщение, что память не может быть read по адресу 00000000. Может есть уже ее версия под w2k. И еще: может кто подскажет проги для того, чтобы скрыть содержимое сегмента данных в exe-шнике, а то в троянце смотришь его exe-шник и все видно :-)
|