|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.03.2010, 08:00 | #1 |
Пользователь
Регистрация: 23.08.2008
Сообщений: 51
|
Можно ли урезать еще....
Ребята, такой вопрос: Создаю пустой проект (VS C++) , добавляю файл *.cpp кидаю в него следующий код:
#include "windows.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { return 0; } потом собираю проект. Получается экзешник размером 40.5 кб. Я так понимаю, что весь "вес" из-за подключенного "windows.h". так? хотя я не уверен. Так можно ли как-то уменьшить его!? Я так думаю не для каждой же программы этот "windows.h" используется полностью.. На API можно писать довольно компактные программки.. т.е. 40.5 кб уже как-то накладно... Может кто занимался подобными экспериментами? Просветите! |
20.03.2010, 08:59 | #2 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,695
|
Цитата:
А подобными "эксперементами" занималась куча людей, что подтверждает гугл. По теме: отказ от CRT и его стаба, вызов апи функций, мерж секций (если разделение не нужно). |
|
20.03.2010, 10:38 | #3 |
Форумчанин
Регистрация: 08.01.2010
Сообщений: 165
|
Товарищ, зачем тебе меньший размер? Признайся, ты собрался написать вирус или троян? ;-)
Вообще, 40,5 кбайт в твоём случае занимает множество "лишних" вещей. К примеру стандартные С/C++ библиотеки, которые линкуются к проекту, поддержка обработки исключений (если вы пишете на C++) и много всего другого. Теоретически можно от этого отказаться. В WinAPI есть функции, заменяющие практически всё, что есть в стандартных библиотеках. Практически - заниматься такой оптимизацией по размеру нет смысла, как правило. На всякий случай: http://blog.f5soft.com/umenshenie-ra...-studio-part1/ http://blog.f5soft.com/umenshenie-ra...-studio-part2/ |
21.03.2010, 05:47 | #4 |
Пользователь
Регистрация: 23.08.2008
Сообщений: 51
|
Спасибо за ответы и за сылки.. небыл тут еще ..
|
21.03.2010, 17:39 | #5 |
Участник клуба
Регистрация: 29.12.2009
Сообщений: 1,166
|
находил как-то сайт по оптимизации программ, так там программу на делфи с одной функцией показа messageBox урезали до 3 (!!!) килобайт.
Вот это по-настоящему оптимизация!
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть] |
21.03.2010, 18:02 | #6 |
Участник клуба
Регистрация: 29.12.2009
Сообщений: 1,166
|
http://blog.f5soft.com/umenshenie-ra...-studio-part1/
по этой ссылке сделал как там написано, даже при подключении windows.h и вызова апи функций размер exe всего 1 КБ (IDE - MS VS 2008 Professional)!!! вот это да!
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть] |
21.03.2010, 18:06 | #7 |
somewhere else
Участник клуба
Регистрация: 17.07.2008
Сообщений: 1,409
|
dimorik, переключите вид сборки с Debug на Release и получите exe в 16 кб, если не ошибаюсь. Только Clean лучше сделать перед компиляций
"Тяжело в учении, легко в бою" - А.В. Суворов
|
21.03.2010, 18:22 | #8 |
Участник клуба
Регистрация: 29.12.2009
Сообщений: 1,166
|
IDE - MS VS 2008 Professional, все настройки компилятора\компоновщика по умолчанию
Код:
в режиме Release - всего 7,5 КБ в режиме Debug - 29.5 КБ
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть] |
21.03.2010, 19:00 | #9 | |
Пользователь
Регистрация: 23.08.2008
Сообщений: 51
|
Цитата:
Ну не все так безоблачно! Вы попробуйте этот экзешник на другом компе запустить, на котором не установлена VS. Не выйдет!!! |
|
22.03.2010, 00:09 | #10 |
Форумчанин
Регистрация: 08.01.2010
Сообщений: 165
|
Кстати, на заметку, exe-файл можно ещё сжать upx`ом после компиляции. Или любым другим упаковщиком.
А ещё ты так и не дал ответ, зачем тебе это нужно вообще? |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Для какой версии можно еще написать | Михаил Юрьевич | Общие вопросы Delphi | 6 | 30.12.2007 13:48 |
RichEdit. как можно вставлять картинку туда? как можно Скрол програмно вниз двигать? | Svop | Компоненты Delphi | 7 | 28.11.2006 21:07 |