Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320

Уменьшить размер приложения си winapi

23.12.2013, 14:54. Показов 2573. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Предлогаю к обсуждению тему по уменьшению размера приложений написаных на си WinApi.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.12.2013, 14:54
Ответы с готовыми решениями:

Как уменьшить размер приложения для КПК
Добрый день! Решил посмотреть, как программируется для КПК. Поставил себе Lazarus 0.9.30. Все настройки по-умолчанию. Создал...

Ошибка при запуске приложения из приложения WinAPI
Здравствуйте. Есть следующий код, найденный на просторах интернета. int main(int argc, char **argv) { STARTUPINFO si; ...

Уменьшить размер
Сделал простенькую игру на юнити и она занимает около 30мб(апк файл). Там всего 3 плагина и пару картинок. Помогите как-то это исправить

16
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
23.12.2013, 15:29
А.Шишкин. Быстрое написание программ на WinAPI. ПРОграммист, 2010, №9.

...на си WinApi
а что, WinAPI в Си другой какой-то ?
0
87 / 86 / 27
Регистрация: 04.10.2012
Сообщений: 355
23.12.2013, 17:16
Видимо, имелось в виду программирование под Windows.
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
23.12.2013, 17:18
WinAPI и так подразумевает программирование под Windows и от языка не зависит.
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
23.12.2013, 21:31
Лучший ответ Сообщение было отмечено как решение

Решение

1. Включить оптимизацию по размеру.
2. Выкинуть все рантайм-библиотеки.
3. Отключить генерацию отладочных символов.
4. Не использовать релоки, ресурсы и прочее.
5. С помощью команды merge объединить все PE-секции.
6. Сжать exe-шник каким нибудь UPX-ом.
7. Загрузить свое поделие на virustotal и с ужасом обнаружить кучу детектов.
3
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
23.12.2013, 22:10
...вот чем мне нравится upx, так это меньшим количеством ложных срабатываний разных авирей:
Code
1
2
strip --strip-all VoiceControlArduino.dll
upx.exe --best VoiceControlArduino.dll
вот ужал свою либу по голосовому контролю над буратиной https://www.virustotal.com/ru/... 387822190/
0
Исследователь
 Аватар для GrayWolf
318 / 317 / 24
Регистрация: 06.04.2011
Сообщений: 872
24.12.2013, 07:11
8192 байт самое минимальное приложение-"каркас", куда меньше-то? Не упакованное, но оптимизированное. Упакованное UPX - 4608 байт.

Добавлено через 9 минут
Добавлю еще: 10240 байт минимальное оконное приложение, сжатое - 5120 байт.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
24.12.2013, 10:21
Есть такой инструмент Crinckler, упаковщик-компоновщик, минимальное приложение, созданное с его помощью будет занимать 200-300 байт.
1
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
24.12.2013, 10:47
Reducing Executable Size
What is the smallest possible Windows (PE) executable?
Creating the smallest possible PE executable

Добавлено через 11 минут
Цитата Сообщение от GrayWolf Посмотреть сообщение
куда меньше-то?
Что-нибудь простенькое консольное: ~4 Kb (без упаковки). Upack сожмет еще процентов на 30. Пример.
1
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320
25.12.2013, 13:05  [ТС]
Цитата Сообщение от castaway Посмотреть сообщение
Есть такой инструмент Crinckler, упаковщик-компоновщик, минимальное приложение, созданное с его помощью будет занимать 200-300 байт.
не помню где то читал что потеря в старте за счет распаковки. я имею введу написание маленьких приложений без гемора.

Добавлено через 1 минуту
Цитата Сообщение от raxp Посмотреть сообщение
WinAPI и так подразумевает программирование под Windows и от языка не зависит.
с вами согласен но есть например delphi и си и т.д. чтобы было понятнее.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
25.12.2013, 13:22
На современных ПК, время, потраченное на распаковку, не заметно для человеческого глаза, разумеется если размер программы не исчисляется десятками мегабайт.
1
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
25.12.2013, 15:19
Цитата Сообщение от n971030 Посмотреть сообщение
потеря в старте за счет распаковки
Все эти возражения были актуальны лет 15 назад - во времена Win'9x.
0
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320
25.12.2013, 17:05  [ТС]
Цитата Сообщение от gazlan Посмотреть сообщение
Все эти возражения были актуальны лет 15 назад - во времена Win'9x.
вполне возможно но зачем писать по если 1 кнопка будет занимать в программе 10 метров, всеравно приятние когда прога мало занимает.
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
25.12.2013, 17:56
Цитата Сообщение от n971030 Посмотреть сообщение
если 1 кнопка будет занимать в программе 10 метров
Ладно, если только 10. Народ, вон, на Qt пишет... У всех свои приоритеты.

По совести, иногда ностальгирую по DOS, времени фантастических идей и невероятной изворотливости кодеров. Плохих программ в то время почти не было, не выживали, просто не помещались ни на дискету, ни в память.
0
 Аватар для BOGG ART
592 / 459 / 147
Регистрация: 09.12.2013
Сообщений: 2,385
Записей в блоге: 2
26.12.2013, 02:23
Цитата Сообщение от n971030 Посмотреть сообщение
но зачем писать по если 1 кнопка будет занимать в программе 10 метров
Откуда цифры? Не 10, а меньше 3. И не кнопка, а система компонентов, охватывающая большинство возможностей современного интерфейса Windows. А дальше - одна кнопка, 50 кнопок, 1000 кнопок - размер exe не особо станет расти от их количества.

Померял. Пустая Форма Delphi+VCL - 362кб. С кучей кнопок что-то делающих/рисующих, холстом для рисования и возможностью сохранения в bmp-файл - 397кб (и то только потому что ещё модули подключились). Добавив модуль для того чтоб выводить web-страницу в IE - 437кб.
Откуда вы называете числа в 20-25 раз больше? А если через KOL написать тож самое...
Цитата Сообщение от n971030 Посмотреть сообщение
приятние когда прога мало занимает
да..? А как насчёт надёжности и скорости работы? Кстати всё (почти) что пожато упаковщиками будет есть больше оперативки когда запустите приложение. "Пусть exe весит на 2Мб меньше, но ест на 10Мб больше оперативки" - это приятнее?
А скорость разработки? VCL/MFC/Прочее сделаны чтоб взять и за 15 минут наваять работующую штуку, а так вы полгода писать будете на чистом (если конечно нет наработок по теме). Как будут платить программисту, который стока времени возится? Зарплата раз в полгода вас утроит?
Хотя к тому времени работу отдадут тому кто напишет на Бэйсике - и через сутки заказчик получит функционирующий exe.

З.Ы.
Вложения
Тип файла: zip farbrausch-fr-028-brullwurfel-musicdisk.zip (60.9 Кб, 5 просмотров)
0
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320
28.12.2013, 00:49  [ТС]
Цитата Сообщение от BOGG ART Посмотреть сообщение
омерял. Пустая Форма Delphi+VCL - 362кб. С кучей кнопок что-то делающих/рисующих, холстом для рисования и возможностью сохранения в bmp-файл - 397кб (и то только потому что ещё модули подключились). Добавив модуль для того чтоб выводить web-страницу в IE - 437кб.
Цитата Сообщение от BOGG ART Посмотреть сообщение
Померял. Пустая Форма Delphi+VCL - 362кб. С кучей кнопок что-то делающих/рисующих, холстом для рисования и возможностью сохранения в bmp-файл - 397кб (и то только потому что ещё модули подключились). Добавив модуль для того чтоб выводить web-страницу в IE - 437кб.

Если судить о delphi скачай code dgerar чтоли так называется там 10 метров пустой exe с одной формой. на асм на такой размер затолкаеш стока всего.

Добавлено через 2 минуты
Цитата Сообщение от BOGG ART Посмотреть сообщение
? Кстати всё (почти) что пожато упаковщиками будет есть больше оперативки когда запустите приложение. "Пусть exe весит на 2Мб меньше, но ест на 10Мб больше оперативки" - это приятнее?
я с вами согласен, эта тема именно с этой целью. ведь код неможет взятся из неоткуда в озу если его в exe незатолкали. правильно? (неговорю о связаных функциях с dll ос и т.д но этот же размер совсем незначительный)

Добавлено через 2 минуты
Цитата Сообщение от BOGG ART Посмотреть сообщение
Откуда цифры? Не 10, а меньше 3. И не кнопка, а система компонентов, охватывающая большинство возможностей современного интерфейса Windows. А дальше - одна кнопка, 50 кнопок, 1000 кнопок - размер exe не особо станет расти от их количества.

Померял. Пустая Форма Delphi+VCL - 362кб. С кучей кнопок что-то делающих/рисующих, холстом для рисования и возможностью сохранения в bmp-файл - 397кб (и то только потому что ещё модули подключились). Добавив модуль для того чтоб выводить web-страницу в IE - 437кб.
Откуда вы называете числа в 20-25 раз больше? А если через KOL написать тож самое...

да..? А как насчёт надёжности и скорости работы? Кстати всё (почти) что пожато упаковщиками будет есть больше оперативки когда запустите приложение. "Пусть exe весит на 2Мб меньше, но ест на 10Мб больше оперативки" - это приятнее?
А скорость разработки? VCL/MFC/Прочее сделаны чтоб взять и за 15 минут наваять работующую штуку, а так вы полгода писать будете на чистом (если конечно нет наработок по теме). Как будут платить программисту, который стока времени возится? Зарплата раз в полгода вас утроит?
Хотя к тому времени работу отдадут тому кто напишет на Бэйсике - и через сутки заказчик получит функционирующий exe.

З.Ы.
поэтому с++ 6.0 я запускаю с удовольствием в отличии от vs 2010 или delphi code dg2/3 vs 2012 мандраш возьмет под конец дня пока проект накатаешь.
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
28.12.2013, 01:13
А вам не кажется, что упомянув VCL и начав сравнивать размеры приложений с его использованием (причем в разных версиях по-разному без оптимизаций: TDL - 400 кБ, XE5 - 3 МБ, Lazarus - 10 МБ и что далее при накидывании размер приложения увеличивается незначительно) вы вышли за рамки означенной темы про WinAPI и действуете некорректно, превращая в тему в холивар (которых тут море)?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.12.2013, 01:13
Помогаю со студенческими работами здесь

Уменьшить размер фото
Вот коды <li id="page_Portfolio"> <div class="box1"> <div class="inner"> <a...

Уменьшить размер документа
Помогите мне, пожалуйста! Размер документа в PDF Adobe Acrobat 1.5 Mb, нужно предельно допустимый 1 Mb. Каким образом уменьшить размер...

Уменьшить размер изображения
Привет всем! Есть вопрос. Достаю изображение из базы данных в виде base64String. Функцией Base64ToImageAndSave преобразую в Image и...

Уменьшить размер книги
Здравствуйте! Столкнулся с проблемой, которая наверняка многим знакома. С большим размером файлов. На данный момент у меня настроена работа...

уменьшить размер файла
Помогите решить. Дан файл целых чисел, содержащий более 50 элементов. Уменьшить его размер до 50 элементов, удалив из файла необходимое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru