Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.04.03;
Скачать: [xml.tar.bz2];

Вниз

Как уменьшить размер ехе-файла   Найти похожие ветки 

 
RelakS   (2003-03-16 19:33) [0]

Написал на VC++ програму она получилась 50кб, написал такую же на Делфи приблизительно 420кб. Так вот,можно ли как-то уменьшить размер программы.


 
big_rom   (2003-03-16 19:35) [1]

нет или писать на апи

Удачи


 
nikkie   (2003-03-16 20:05) [2]

на VC небось писал на MFC? посмотри настройки проекта - там по дефолту стоит "Use MFC as a shared DLL". это означает, что для функционирования твоей программы будет требоваться mfc42.dll размером 1Mb. так что не обольщайся. линковка с MFC статически сразу увеличит размер твоей программы, но такая программа не будет требовать MFC dll.

хочешь добиться такого же эффекта на Delphi? элементарно. открой Project/Options и поставь галочку "Build with run-time packages". программа будет маленькой, но будет требовать *.bpl файлы.

реально маленького размера можно добиться, программируя на апи, либо используя другие библиотеки.


 
NKiril   (2003-03-16 20:55) [3]

А вот и можно, есть такая прога. UltimatePacker или шото в этом роде, если заинтересовало. Мыльте... Так вот моя прога из 420кб превратилась в 120 кб.


 
IL-89   (2003-03-16 21:02) [4]

Ещё можно KOL (кодоэкономичная библиотека) использовать. Размер уменьшится в 5-10 раз, но мне лично на KOL программировать неудобно (немного отличается от VCL).
IL-89


 
multik   (2003-03-17 00:20) [5]

ASPack - уменьшает размер exe в несколько раз. У меня одну прогу уменьшила в 6 раз. Но бывают случаи, когда прога глючит после сжатия, но редко.


 
Lancelot   (2003-03-17 01:33) [6]

Вопросу давно пора в FAQ.


 
NetBreaker666   (2003-03-17 14:23) [7]

Не используй VCL - 40-60kb гарантировано. А из VC++ можна 2кб(и меньше) выжать.


 
Слесарь Матерящийся   (2003-03-17 14:39) [8]

А ЗАЧЕМ писать одно и то же 2 раза? В чём смысл?


 
Игорь Шевченко   (2003-03-17 14:43) [9]

Слесарь Матерящийся © (17.03.03 14:39)

А померяться как же ? :-))) Чтобы потом сказать - Delphi отстой, так как большие exeшники создает :-))))


 
Слесарь Матерящийся   (2003-03-17 14:49) [10]

>Игорь Шевченко © (17.03.03 14:43)

Действительно! :)
Кадру просто нечем заняться...


 
y-soft   (2003-03-17 14:56) [11]

Если бы дело только в размере было, то все писалось бы на ASM или вообще в машинных кодах, а потом очччень долго и мучительно оптимизировалось (кто работал с микроконтроллерами, тот знает). Есть ведь и другие способы уменьшения размера бинарников - например грамотное совместное использование Dll


 
blackman   (2003-03-17 14:56) [12]

Можно и уменьшить
http://www.aspack.com/


 
Danilka   (2003-03-17 15:06) [13]

для любителей упаковщиков желательно почитать вот-это:

http://plugring.farmanager.com/programming/articles/packers.html


 
NetBreaker666   (2003-03-17 15:33) [14]


2y-soft ©
> то все писалось бы на ASM или вообще в машинных кодах

А какя разница ? Меньше занимать будут ?


 
y-soft   (2003-03-17 15:50) [15]

>NetBreaker666 © (17.03.03 15:33)
Конечно меньше, т.к. больше возможностей для оптимизации


 
NetBreaker666   (2003-03-17 16:51) [16]


> y-soft © (17.03.03 15:50)
> >NetBreaker666 © (17.03.03 15:33)
> Конечно меньше, т.к. больше возможностей для оптимизации

Каких возможностей для оптмимзации? Ты вообще какой ассемблер подразумеваешь? Давай не будем рассматривать архитектуру X-Scale (я сам еще не разобрался). А если ты имеешь ввиду x86, Motorolla (Palm1-2), Texas I., альфа, спарк или что-нибудь в этом роде, то запомни, что между асмом и машинным кодом (с точки зрения машины) разницы нет (я не имею ввиду возможность execut"a). Асм просто более удобен для чтения, там есть такое понятие как метки (да, давай не будем рассматривать макросы - плохой стиль). Например
or ax,ax
jz @Somewhere
jmp @SomewhereElse
Будет выглядеть как 0x09,0xC0,0x74,0xADR1,0xe9,WORD:0xADR2 (16бит) где 0xADR1 и 0xADR2 - относительный и адсолютные адреса. Правда не удобно считать сколько занимает в байтах тот или иной кусок кода ? А компилятор это просто за тебя делает. А так разницы никакой, что ты пишешь mov ax,04c00h; int 21h; или db 0b8h,04ch,000h,0cdh,021h - разницы никакой.
Если не веришь, попробуй привести кусок кода, который нельзя реализовать на Ассемблере.



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2003.04.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.01 c
3-6325
PrettyFly
2003-03-17 14:59
2003.04.03
Отфильтрованный базар...


14-6765
xtreme
2003-03-14 10:16
2003.04.03
Запись на CD/DVD (R, RW, +RW, -RW) где стандарты почитать?


14-6699
ruben
2003-03-13 03:42
2003.04.03
Возможно ли программное включение компьютера?


1-6439
Серега
2003-03-23 00:14
2003.04.03
Клавиши!!


3-6418
Lancelot
2003-03-16 23:48
2003.04.03
Связанные таблицы, запросы по запросам...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский