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


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0341 ]   [ 16 queries used ]   [ Generated: 27.04.24, 21:27 GMT ]