Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

размер исполняемого кода [Delphi, Windows]


Alek Aaz ©   (2004-03-26 05:19:00) 

Подозрительно уменьшился размер исполняемого кода создаваемых программ в Delphi 5. Простая форма, без VCL элементов "тянет" на 13.4 кБайт. Без всяких KOLов и т.п.
В той-же Delphi 7 (стоит на работе) такая же форма "тянет" на 360 кбайт.
Получилось это случайно.
Выпимши пива, в очередной раз ставил дома пакеты от GLScene, и случайно снес в Tools/Environment Options/Library/Library Path
C дури, скопировал строчку из Tools/Environment Options/Library/Browsing Path - не помогло, добавил $(DELPHI)\Lib При компиляции компилятор что-то ляпнул про невозможность включения файла ????.obj (ну не помню я точно, знал бы - записал). Дальше все ОК. Програмки пишутся, работают, но размер на ~300 кб меньше положенного.
Так как дело это нужное и полезное, решил раскопать в чем дело.
Собственно вопросы, может кто скажет что умное:
1. Что за файл ffm?.obj Упоминается в исходниках SysUtils.pas но его в дистрибутиве нет. (может именно его и не смог включить компилятор?)
2. Новые программы создаются на ура, а вот старые перекомпилировать не удается. Компилятор ругается на отсутствие файла из вопроса 1. Как компилятор узнает, что нужно перекомпилировать все модули(где запоминаюся параметры версий модулей)? Почему, при создании новой программы он их не перекомпилирует?
3. Попытка сделать что-то подобное на Delphi 7 (добавить путь из Browsing Path в Library Path)  наполкнулась на интересный глюк - выдается ошибка о рекурсии [Fatal Error] Variants.pas(1024): Program or unit 'Variants' recursively uses itselfПри беглом просмотре ничего подобного нет. Объясните плиз почему, я не понимаю.
4. Можно-ли посмотреть структуру программы? Что находится в недостающем блоке программы? Чего собственно она лишилась и насколько это опасно? Могу выслать exe-шник.

Если это безопасно, можно вырабатать какую нибудь методику по уменьшению размера программ без использования KOL, WinAPI и упаковщиков.


Alek Aaz   (2004-03-27 16:58:00) [1]

Попробовал.
Вопрос снят.


SPeller   (2004-03-27 08:00:00) [2]


> Если это безопасно, можно вырабатать какую нибудь методику
> по уменьшению размера программ без использования KOL, WinAPI
> и упаковщиков.

Писать на чистом ассемблере, MASM, TASM и им подобные.
:)


Dimaxx   (2004-03-26 21:58:00) [3]

Судя по всему, включился режим "зависимой" компиляции. То есть зависимость от vcl50.bpl и иже с ними. Тогда размер действительно маленький.


Alek Aaz   (2004-03-26 09:45:00) [4]

Попробую.


Владимир Кладов   (2004-03-26 07:38:00) [5]

а теперь отнесите этот экзешник на компьютер, на котором не установлен Delphi.


Наверх

Титульная страница Поиск, карта сайта Написать письмо