Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 22 • Страница 1 из 21  2  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Вот пришлось на днях по скоромму набросать утилку для того, чтоыб проверяла наличие определенного окна в памяти и закрывала бы его.
Код простейший ведь.
FindWindow если нашел то SendMessage с командой WM_CLOSE, все!
Попробывал на VC++ - .exe 50kb :(
Попробывал на Delphi - .exe 20kb :(
Попробывал на MASM - .exe 1kb :) вот это я понимаю размер! :)
----------
Теперь знатокам, как на VC уменьшить код? И можно ли это так сделать? Я про упаковку .exe не говорю. Понимаю что 50кб это не супер большой размер, но меня интересовал уж очень маленький код, там ведь делать нечего!



Партнер
 

Member
Статус: Не в сети
Регистрация: 20.11.2003
Есть упаковщики (оптимизаторы и exe-архиваторы)


 

Member
Статус: Не в сети
Регистрация: 18.01.2004
Фото: 0
Ray Adams
Цитата:
Теперь знатокам, как на VC уменьшить код?

А никак - VC и Delphi тянут за собой блоки инициализации и менеджер памяти - этого у них не отнять.
В Delphi минимальный размер экзешника получается 8 кил.

Кстати я буквально вчера написал вот это и у меня 16 кил.
http://www.8dim.com/forum/topic.asp?TOPIC_ID=1429

Mike-L
А смысл? Упаковщик тоже место занимает, а в запущенном приложении это ничего не сэкономит.

_________________
Да гоните вы все!


Последний раз редактировалось Frags 29.05.2004 2:13, всего редактировалось 1 раз.

 

Member
Статус: Не в сети
Регистрация: 13.04.2004
Откуда: Москва
Ray Adams
убрать debug-опции и program datebase - у меня (VS6) - 36kb
project settings\ c\c++ \ code generation \ use run-time library - multithreaded dll - 16kb


 

Member
Статус: Не в сети
Регистрация: 20.06.2003
Откуда: Ижевск
Ray Adams
Только что попробовал на дельфи7 скомпилить то же самое - 14кб, без каких либо извратов ;)
Для VC у тебя тоже многовато получилось, я видел простейшие гуёвые проги с размером EXE в 20kb..

PS: на дельфи еще можно навесить KOL+MCK и оптимизированные библиотеки,
тогда возможно размер еще уменьшится.


 

Member
Статус: Не в сети
Регистрация: 08.03.2004
Откуда: Москва
Delphi, C и прочие при компиляции включают в себя библиотеки, сам код тож хреновенький, отсюда и капает.


Если хочешь быстрых коротеньких прог, юзай асму

_________________
Software is like a sex, it is better when it is free


 

Member
Статус: Не в сети
Регистрация: 30.04.2004
Откуда: [Omsk Team]
Ray Adams
посмотрите ProjectSettingsLink - по умолчанию линкится много ненужного, убрав некоторые либы можно значительно сократить размер, н-р HW весит всего 4кб

Добавлено спустя 1 минуту, 53 секунды:
а еще /opt:nowin98 в опции линковщика и размер уменьшается за счет неиспользования 4кб сегментов

_________________
forum.omskteam.ru- Все о керамограните


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Dilon Смотрел я, вырубал все что ненадо , включал все оптимизации и меньше 26 на VC не смог выжать, но видимо и не судьба. Даже без и спользования MFC все оно , VC тянет в код что-то из своего. Минимальный код только на асме конечно. Но все равно интересно. Я dll писал вот они гады мешье 50 никак не выжымались, а там простейшие дествия были. Пример тому два плагина под ATI Tray Tools. Один выводит список PCI устройств, второй информацию о Radeon карте. Так вот оба без упаковки были по 50кб

Добавлено спустя 2 часа, 4 минуты, 56 секунд:
Galaxy
Цитата:
Ray Adams
убрать debug-опции и program datebase - у меня (VS6) - 36kb
project settings\ c\c++ \ code generation \ use run-time library - multithreaded dll - 16kb

Оба! Вот это включил multithreaded dll и код сразху стал очень маленький! Блин а почему по дефолту стоит только multithreaded и как это может мне потом выйти боком?


 

Member
Статус: Не в сети
Регистрация: 08.05.2004
Откуда: Novosibirsk
Ray Adams скорее всего ты не сможешь грузить более одной копии DLL ки в память! Это значит, что только одно приложение сможет в этот момент времени его юзать. А на скоолько кстати код стал меньше?

_________________
All Cool, Style In All


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Цитата:
скорее всего ты не сможешь грузить более одной копии DLL ки в память! Это значит, что только одно приложение сможет в этот момент времени его юзать.

Первый раз про такое ограничение слышу, быть не может такого. Размер уменьшился в два раза, был около 50 стал около 26 а упаковав UPX стало вообще 4кб.


 

Member
Статус: Не в сети
Регистрация: 08.05.2004
Откуда: Novosibirsk
Можно конечно выяснить если надо. В COM технологиях такая вишка точно есть!
Вообще нормальную лит-ру не достанеш. Везде какие то убогие примеры работы...

_________________
All Cool, Style In All


 

Member
Статус: Не в сети
Регистрация: 14.03.2004
Откуда: Москва
Ray Adams
Попробуй включить оптимизацию под размер. А плохово в dll ничего нету. Только хорошое ИМХО

_________________
ФИЗТЕХ- рулез, ФАКИ - сила, Кванты тоже хорошо


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
nickyoz
Цитата:
оптимизацию под размер.
ничего не давала, а насчет плохого я просто спрашивал вдруг какие там библиотеки понадобатся моей .dll после такой оптимизации. Интересно просто , накой надо было лишние 25кб приписывать если и без них работает???


 

Member
Статус: Не в сети
Регистрация: 15.04.2004
Откуда: Москва
Ray Adams
Могу посоветовать отказаться от CRT (C Runtime library).
Потеряешь все std c функции (но я думаю, они тебе не нужны).
Хорошие рекомендации есть на сайте RSDN.

_________________
Цель жизни - d20 по жизни...


 

Member
Статус: Не в сети
Регистрация: 14.03.2004
Откуда: Москва
Ray Adams
Всё, что компилируешь в VS 6.0 винда тоскает начиная с 5 версии. В .net не уверен, но скорее всего таскает где нибудь с 2000 СП 2.
А отказ от CRT - неплозая идея. У форточки ИМХО API не хуже вским г**ном забит.

_________________
ФИЗТЕХ- рулез, ФАКИ - сила, Кванты тоже хорошо


 

Member
Статус: Не в сети
Регистрация: 15.04.2004
Откуда: Москва
nickyoz
Только надо помнить, что отказываясь от CRT лишаешься многих вкусностей языка Плюснотое Це...

_________________
Цель жизни - d20 по жизни...


 

Member
Статус: Не в сети
Регистрация: 14.03.2004
Откуда: Москва
Avaddon Есть такое - надо с умам эти вкусности по отдельности прикрутить. А так у С не особо много вкусностей ИМХО.

_________________
ФИЗТЕХ- рулез, ФАКИ - сила, Кванты тоже хорошо


 

Member
Статус: Не в сети
Регистрация: 15.04.2004
Откуда: Москва
nickyoz
Я не говорю про C, я про C++.
Отказываясь от CRT ты лишаешься:
- шаблонов (очень многие используют стандартные аллокаторы)
- классов как таковых (если не переопределишь new и delete)

_________________
Цель жизни - d20 по жизни...


 

Member
Статус: Не в сети
Регистрация: 14.03.2004
Откуда: Москва
Avaddon
Про с++ тут и говорить не чего - ты лишишься практически всего(точнее тебе практически самому прёдеться CRT писать). Но CRT часто с форточкой поставляеться
Кстати, а если сказать компилятору, что код ТОЛЬКО С, может поменьше будет.

_________________
ФИЗТЕХ- рулез, ФАКИ - сила, Кванты тоже хорошо


 

Member
Статус: Не в сети
Регистрация: 15.04.2004
Откуда: Москва
nickyoz
CRT в отличии от MFC с форточками не поставляется.
Только C код не даст никакого эффекта.

_________________
Цель жизни - d20 по жизни...


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 22 • Страница 1 из 21  2  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  

Лаборатория














Новости

Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan