![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: нет Всего: 39 |
Как можно сделать размер готового exe,
я вот тут нашел такую #pragma comment(linker, "/ENTRY:aWinMain") Т.е. устанавливаем точку входа, минуя стандартную, а следовательно загрузку CRT Но говорят можно достичь, чтоб экзешник весил чуть ли не килобайт??? Поделитесь пожайлуста информацией. Заранее спасибо |
|||
|
||||
Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 8 Всего: 18 |
Можно на асме писать, но замучисси. Чистый WinAPI занимает довольно мало ~40Kb без ресурсов, но это редкость. Попробуй упаковщики, но я не пользовался не знаю насколько удобно и эффективно.
Добавлено @ 19:31 ![]() ![]() |
|||
|
||||
Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: нет Всего: 39 |
ухх, какую опцию линкера нашёл
/opt:nowin98 Уменьшение величины выравнивания файловых секций |
|||
|
||||
Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 8 Всего: 18 |
А где ты искал. Я тоже хочу посмотреть
![]() |
|||
|
||||
Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: нет Всего: 39 |
Сейчас я добился, что скомпиленный exe, который просто загружает библиотеку и вызывает из нее функцию занимает у меня 1024 байт (и это без всяких асмов)
|
|||
|
||||
Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 8 Всего: 18 |
Неплохо. А собственное окно не создает?
Добавлено @ 19:38 А по-подробнее о том что ты использовал для уменьшения ![]() А какой компилятор? |
|||
|
||||
Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: нет Всего: 39 |
Вобщем пощарился по открытым ресурсам и нашел следующее по интерисующему меня вопросу:
исполняемый файл можно уменьшить если, убрать "библиотеку" RTL, для чего мы переназначаем точку входа со стандартной на ту, которая нам нужна делается это следующим образом #pragma comment(linker, "/ENTRY:aWinMain"), где aWinMain - ваша функция. Кроме того можно уменьшить exe, путем добавления следующих строк: #pragma comment(linker, "/MERGE:.rdata=.text") #pragma comment(linker, "/MERGE:.data=.text") #pragma comment(linker, "/SECTION:.text,EWRX") #pragma comment(linker, "/IGNORE:4078") Могу ошибаться так как новичок, но помоему первые три строки соединяют две секции rdata и data в text. Четвертая строка делает игнор на варнинг, который возникае вследствии первый двух строк. + в завершении сия строчка кода #pragma comment(linker, "/opt:nowin98") Здесь мы уменьшаем велечину вырвнивания файловых секкций, так как в обычных условия они выравниваются по 512 байт Ну вот, мож половина что я здесь наплел плод моей больной фантазии, но всеж. |
|||
|
||||
Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 8 Всего: 18 |
Супер!!!!!!!!!!!!!!!!
![]() ![]() ![]() ![]() Класс!!! Я б тебе репутацию поднял, если б мог. |
|||
|
||||
Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 8 Всего: 18 |
А почему это во столько раз уменьшает размер проги? И работать все перестает в проге. ![]() |
|||
|
||||
Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: нет Всего: 39 |
Fixin
Работать перестает не всё, но к сожалению, многое(: -Работа с числами с плавающей точкой -Работа с дин памятью -Улетает несколько стандартных функций Просто в моем примере это всё не надо было, я щас свою длл с 36 до 2 кб сжал, не конечно суперская весчь ЗЫ #pragma comment(linker, "/opt:nowin98") можно заменить на #pragma comment(linker,"/FILEALIGN:512") |
|||
|
||||
S.A.P. |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: нет Всего: 71 |
||||
|
||||
Nicky |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 18.12.2004 Где: Кишинёв Репутация: нет Всего: 1 |
||||
|
||||
chipset |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 2 Всего: 165 |
У меня был рекорд - DLL 4 кб со всеми стандартными функциями
![]() --------------------
|
|||
|
||||
4udo |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 13.4.2006 Где: Казахстан Репутация: 1 Всего: -1 |
Привет,всем.
Суперская тема - вношу две лепты. 1.Можно влинковать свой Stub - делается так #pragma comment /STUB:stub.exe Ещё вот кое-какие прагмы /ALIGN:4096 /NODEFAULTLIB /IGNORE:4078 2.Все эти оптимизациии сконцентрированы вот здесь - AggressiveOptimize.h:
3.Можно использовать мини-библиотеку - LIBCTINY.LIB : 4.Кому интересно вот ещё находка , MiniCrt.h:
Это сообщение отредактировал(а) 4udo - 17.4.2006, 07:55 Присоединённый файл ( Кол-во скачиваний: 58 ) ![]() |
||||
|
|||||
SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 10 Всего: 124 |
Вот, писал в своё время...
Исходники и EXE-файлы — в архиве (проекты для VS6) Размеры в байтах
Присоединённый файл ( Кол-во скачиваний: 95 ) ![]() |
|||
|
||||
4udo |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 13.4.2006 Где: Казахстан Репутация: 1 Всего: -1 |
Наверно тема пролопачена от и до .
Осталось лишь сжимать exe - ки автоматом - пакерами , протекторами или ещё чем-то?????......... |
|||
|
||||
4udo |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 13.4.2006 Где: Казахстан Репутация: 1 Всего: -1 |
Существенно почему - то ни кто это ни пишет,а ведь реально прописать в опциях так:
/FILEALIGN:0x10 /ALIGN:0x10 Это дает существенный сброс массы исполняемого файла то бишь .exe |
|||
|
||||
aleksLAN |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 27.4.2006 Репутация: нет Всего: нет |
можно... почитай здесь http://hack-expo.void.ru/groups/uinC/text/28/index.htm |
|||
|
||||
4udo |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 13.4.2006 Где: Казахстан Репутация: 1 Всего: -1 |
aleksLAN , походи по форуму пользуясь поиском и найдешь .exe в 153 байта.
А то что в приведенной статье - все уже есть в топике читай внимательно. Вот примеры: http://forum.vingrad.ru/index.php?showtopic=18307 http://forum.vingrad.ru/index.php?showtopic=91814 Это сообщение отредактировал(а) 4udo - 29.4.2006, 15:25 |
|||
|
||||
Wolf |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 9.6.2006 Где: Нижневартовск Репутация: нет Всего: нет |
Подскажите пожалуйсата, как мне уменьшить размер exe в компиляторе Borland C++ Builder 6, пишу на чистом API. В опциях проекта на вкладке Linker снимаю галочку Use dynamic RTL, но размер увеличивается с 10 Кб до 55 Кб, а если подключаю заголовочный файл fstream.h до вобще до 280 Кб. В чём причина? Возможно ли уменьшение в BCB6?
|
|||
|
||||
rsm |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 4 Всего: 62 |
Первая цитата со второй что-то никак не стыкуется ![]() З.Ы. Могу поискать свою приватную тулзу (кажись, должна была где-то сохраниться), позволяющую делать в C++ Builder самодостаточные ЕХЕшники размером от 7,5 Кб. Но она поможет только если пишешь на чистом WinAPI, без всяких там CRT и прочих VCL. |
|||
|
||||
Wolf |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 9.6.2006 Где: Нижневартовск Репутация: нет Всего: нет |
Да, понял, что я ламер
![]() ![]() |
|||
|
||||
rsm |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 4 Всего: 62 |
Wolf, см. аттач. Там утилита, описание к ней, и парочка простеньких демонстрационных примеров.
// fixed: исправленный аттач см. ниже по теме Это сообщение отредактировал(а) rsm - 23.6.2006, 22:15 |
|||
|
||||
Wolf |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 9.6.2006 Где: Нижневартовск Репутация: нет Всего: нет |
rsm, огромное спасибо
![]() ![]() Хе... Вот и вопрос возник, а что делать с dll, создаю библиотечку в ней только windows.h, в опциях также можно настраивать Use dynamic RTL и т. п. Неужели при загрузке dll, сама dll будет вызывать RTL? Короче как быть с библиотечками? Извеняюсь, если не по теме, хотя тоже с уменьшением размера связано, тока длл... Это сообщение отредактировал(а) Wolf - 16.6.2006, 15:01 |
|||
|
||||
Wolf |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 9.6.2006 Где: Нижневартовск Репутация: нет Всего: нет |
Думаю, если даже принцип удаления RTL из dll одинаковый, то точку входа надо всё равно изменять, хотя... Если DllEntryPoint заменить на WinMain )))) или не прокатит?
![]() |
|||
|
||||
rsm |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 4 Всего: 62 |
А почему нет? Тебя же не удивляет, что в DLL могут быть вызовы функций из системных библиотек (kernel32.dll и пр.). Если бы еще тупой BСВ'шный линкер позволял переносить точку входа... нет у него такой опции, просто нет. Добавил поддержку DLL. Это сообщение отредактировал(а) rsm - 17.6.2006, 12:57 Присоединённый файл ( Кол-во скачиваний: 64 ) ![]() |
|||
|
||||
Wolf |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 9.6.2006 Где: Нижневартовск Репутация: нет Всего: нет |
Просто прекрасный вклад в программирование, неужели эти америкосы не понимают, что просто прекрасно писать маленькие программы с маленькими длл, нетребующими ничего. Просто раздражает то, что на ассме написанная прога весит гораздо меньше... Но всегда хочется оценить функциональность с занимаемым объёмом... Пасибо... Вот теперь то настоящее человеческое спасибо...
![]() Это сообщение отредактировал(а) Wolf - 18.6.2006, 19:59 |
|||
|
||||
rsm |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 4 Всего: 62 |
Понимают, и даже целые сайты создают: 1 2 3 и т.д. Тут дело в разделении программирования для себя (WinAPI) и для дяди (MFC, Qt и иже с ними), а так же по сложности (на чистом WinAPI писать сложнее и опыта нужно больше).
Если еще и компилятор нормальный взять (врагу не пожелаю писать на чистом WinAPI в ВСВ), тогда размеры даже уравнять получится. |
||||
|
|||||
Wolf |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 9.6.2006 Где: Нижневартовск Репутация: нет Всего: нет |
А какие компиляторы больше всего подходят для программирования на API? Что лучше? Говорили мне, что Visual C++ но так он мне не нравится, да и ктому же стоит много... И что лучше подходит WinAPI+OpenGL или WinAPI+Direct3D |
|||
|
||||
S.A.P. |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: нет Всего: 71 |
||||
|
||||
rsm |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 4 Всего: 62 |
Лично мне более всего нравится и полностью устраивает Pelles C for Windows - маленькая (дистрибутив 6,5 Мб), бесплатная (в т.ч. и для коммерческого применения), удобная IDE со встроенным редактором диалогов и подсветкой аргументов WinAPI-функций. Однако, есть у нее и недостатки: - выдаваемый компилятором код очень и очень посредственный в плане оптимизации, для задач с высоким быстродействием применять его категорически нельзя; - поддерживается только наш родной нормальный чистый Си, без всяких там плюсов и решеток - для любителей С++ это смертельное препятствие; - нет автодополнения; Для моих задач Pelles C for Windows подходит идеально, но подойдет ли тебе, я не знаю.
Правильно говорили - Visual C++ это, пожалуй, лучшая IDE, со всеми новомодными фишками (автодополнение, подсветка функций всплывающими подсказками и пр.) и очень хорошо оптимизирующим компилятором (лучше разве что только у Intel). Насчет цены можно не беспокоиться если не собираешься использовать ее в коммерческих целях - с сайта MS можно свободно утянуть бесплатную VC++ 2005 Express Edition. Добавишь к ней PSDK, редактор диалогов по вкусу - и будет отличная вещь! VC++ или еще лучше Intel C++ Compiler. Отличная оптимизация по размеру и скорости, плюс в отличие от ВСВ не будет ультра-геморроя с подключением хидеров и библиотек DirectX. |
||||
|
|||||
Toohtik |
|
|||
![]() Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 142 Регистрация: 30.1.2006 Где: Харьков Репутация: нет Всего: нет |
Я в этой теме новичок, но недавно нашел прогу под названием ASPack, которая офигенно сжимает exe. Для примера: после написания мной проги она весила - 160кб, а псоле сжатия ASPack`ом - 33Кб. Почему бы не использовать её для сжатия exe?
|
|||
|
||||
Solomon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 471 Регистрация: 23.1.2006 Где: Украина Киев Репутация: нет Всего: 2 |
rsm, Assembler рулит
![]() -------------------- Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром... Соломон 2008 |
|||
|
||||
rsm |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 4 Всего: 62 |
||||
|
||||
Toohtik |
|
|||
![]() Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 142 Регистрация: 30.1.2006 Где: Харьков Репутация: нет Всего: нет |
Действительно. Ту же прогу сжало до 25.7 кб:-) |
|||
|
||||
neosapient |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 16.8.2006 Репутация: 3 Всего: 4 |
А твоя прога Relese или Debug, а то во втором случае много лишнего имеется... |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
cl.exe /nologo /TC сырец.c /link msvcrt.lib /ALIGN:32 /FIXED /MERGE:.rdata=.text /NODEFAULTLIB /MERGE:.data=.text /RELEASE /MACHINE:IX86 /ENTRY:main /out:прога.exe
;) около 600 байт для хеллоуорлдов. При этом хеллоуорлд на Python'е - 700байт(да, скомпилил), но требует dll питона. |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Dem_max |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Не скажи я программирую в среде Borland C++ Builder, счас изучаю чистый WinAPI на нем, так вот готовый exe чистого окна весит 4 кБ. (при этом секции выравниваются по 512 байт), так что не надо говорить что билдер плохой, все зависит от кривости рук.
Мне он тоже не нравиться из-за трудности восприятия кода, возможно там и используется WinAPI, только вот синтаксис этого API изменен. Хотя в этом компиляторе можно использовать и стандартный синтаксис. -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
||||
|
|||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
|
|||
|
||||
Любитель |
|
||||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 1 Всего: 92 |
WinAPI он и в Африке ВинАПИ это раз. MS придумали ВинАПИ и тяжело сказать, что в ихнем компилер синтаксис ВинАПИ изменён 0 это два ![]()
Угу. |
||||
|
|||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Мне вообще Fortran нравиться... и считает он лучше..
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
Toohtik |
|
|||
![]() Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 142 Регистрация: 30.1.2006 Где: Харьков Репутация: нет Всего: нет |
Dem_max, я слыхал что это язык для мат вычислений?
|
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Я не слыхал, я даже на нем программировал.
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
dizzy1984 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 15.2.2007 Репутация: нет Всего: 25 |
Я не сравнивал программы сжатия екзешников по "крутизне", но регулярно пользуюсь тулзой UPX.
Побочным эфектом сжатия является то, что программа станет немного более устойчивой к взлому, т.к будет в запакованном виде. Приятно греет душу то, что малолетние хакеры не смогут с наскока поломать код ![]() |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
dizzy1984, даже я, как полный ноль в крякинге, могу снять всякие ваши фсг и прочие ;)
|
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 1 Всего: 92 |
Мдя, считать upx (в чистом виде - без всяких скрамблеров) защитой от взлома... Даже побочной... Как то странно. |
|||
|
||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
Скажу больше, сам же upx имеет опцию распаковки файлом сажтых им же ![]() -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 1 Всего: 92 |
Дык про то и речь. upx -d <file_name>.
|
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
[off]
[/off] и может хватит оффтопить...? -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
progstone |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 9.8.2007 Репутация: нет Всего: нет |
Динамическая память и классы никуда не делись просто надо переопределить new и delete через VirtualAlloc единственное что не надо использовать это статические глобальные экземпляры классов вместо них нужно использовать глобыльные указатели на классы и память выделять динамически |
|||
|
||||
evkwarrior |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 15.3.2007 Репутация: 1 Всего: 1 |
Ребят, давайте перестанем спорить, какой компилятор лучше, а будем дальше сжимать екзешник!)))
Вот я, например, учился и до сих пор пишу на BCB6, давно хотел освоить VC7, но всё руки не доходят. Если сравнивать только компиляторы, т.е., к примеру, bcc32.exe и ilink32, то, наверное билдер проиграет. Но а если говорить об IDE и всех его наворотах? Компоненты рулят, если уметь их использовать, потому что они очень глючные. Если вы не знаете, что в AnsiString нельзя хранить большие строки, если не знаете, что TImage мерцает, а TPaintBox нет, то вы всегда будете считать VCL и BCB гавном. Таких нюансов очень много, поэтому ещё неизвестно, что сложнее - выучить API или компоненты. Но вот, что я хотел добавить: уменьшение размера EXE в BCB его же средствами: - включаем "Use dynamic RTL" - вкл. "Build with runtime packages" - удаляем файлы формы - удаляем файлы ресурсов И прога с WinAPI-ным окошком будет занимать 11k (как кто-то получил 4k - я не понимаю...) Включаем всё это, и прога весит около 500k (я проводил тестирование) Опции компилятора, компоновщика, паскаля можно настроить в файле проекта (*.BPR), но не во внешнем редакторе (это бессмысленно), а выбрав Project->Edit Open Source. Я почти всё перепробовал, но меньше файл не стал. В итоге вообще борланд перестал создавать екзешник)))) Почему-то в хелпе написано, что можно поиграться с опциями выравнивания компоновщика -Af:512 и -Ao:4096, и сделать их меньше, но на деле меньше сделать их нельзя!!! Может, кто-нибудь знает, в чем проблема? Потом я предпринял отчаянную попытку создать екзешник из командной строки. bcc32 -c -O1 file1.cpp file2.cpp ilink32 -aa -c -Gn -Af:512 -Ao:4096 file1.obj C0W32.OBJ file2.obj, , ,IMPORT32.LIB CW32.LIB, , И получил екзешник размером в 50К, который работает!!!!)))) ( я был уже этому рад) Без CW32.LIB, C0W32.OBJ (это наш враг - RTL) нифига не работает. Точнее, работает: создается файл размером в 2К, у которого размер секции text = 0 ))))) Но создаётся)))) И, конечно, программа начинается со __startup, в неё добавляются всякие RTL-кие примочки и т.д. и т.п. Вот. Может, кто-нибудь знает ещё что-то о компиляторе и линкере от Borland? |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 27 Всего: 158 |
это, простите, бред. от начала и до конца.
|
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Какая разница, какой размер, если он небольшой? |
|||
|
||||
evkwarrior |
|
||||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 15.3.2007 Репутация: 1 Всего: 1 |
nerezus,
Я писал о BCB6. dumb,
Простите, что? |
||||
|
|||||
WM_SASHA |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 12.4.2007 Где: Узбекистан г.Ташк ент Репутация: нет Всего: нет |
а у меня получилась программа весом 848 байт.она в принципе ничего не делает: выводит текст на дисплее и тихо кончает. и всего 848 байт ля-ля-ля ))))
|
|||
|
||||
dizzy1984 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 15.2.2007 Репутация: нет Всего: 25 |
Ну я вот, к примеру, могу взломать незапакованный экзешник и ломал как минимум один коммерческий продукт, но мой дизасемблер w32dasm показывает кашу (запакованный код) в случае когда он упакован и я так слету не скажу что же сделать по этому поводу. Хотя делается это довольно просто, да и размер уменьшается. UPX имеет опцию распаковки, это я знаю, но 1) Еще надо как-то определить, что это upx 2) Другие упаковщики могут и не иметь опций распаковки. |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 1 Всего: 207 |
ну а у меня есть рабочая программа 78 байт и что? ![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 1 Всего: 92 |
Блин, а PeID и прочее зачем придуманы? ![]() ![]() |
|||
|
||||
WM_SASHA |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 12.4.2007 Где: Узбекистан г.Ташк ент Репутация: нет Всего: нет |
круто! как сделал? без упаковщика надеюсь? |
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
гон. минимальный PE-файл - 97 байт |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |