![]() |
Модераторы: 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 Всего: 164 |
У меня был рекорд - 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 ) ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |