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

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

Убить System.pas [D7, WinXP]


Страницы:   1 2 3 4

RustiK ©   (2004-08-17 10:07:00) 

Привет всем!

Может мне кто подсказать как мне можко избавиться от модуля system.pas автоматически подключаемого к проекту при компиляции.
Если просто из usesубрать не прокатит, в других модуля он прописан. В тот же Forms он присутствует. Т.е. если я подключаю хоть один модуль, в котором хоть в одном зависимом модуле прописан system.pas, то хошь нихошь он опять таки липнет к проекту при компиляции. Как мне от него избавиться?


RustiK   (2004-08-17 11:48:00) [21]

А таких модулей туча, которые коссвенно ссылаются. Как мне их всех перебить? Или удалить все из SysUtils, а потом втсавлять нужные куски кода?


Юрий Зотов   (2004-08-17 11:47:00) [22]

> RustiK   (17.08.04 11:41) [40]

Просто не используйте его и не включайте в Uses. Очень многие функции в SysUtils являются просто удобными оболочками вокруг функций API - значит, вместо них можно напрямую использовать их "первоисточники".

Но 200 Кб Вы на этом тоже не сэкономите. Максимум экономии, которая здесь может получиться - примерно 40 Кб.


Sandman25   (2004-08-17 11:46:00) [23]

Убрать из uses.
Все, на что компилятор будет ругаться, копировать из SysUtils.Pas в RustikSysUtils.pas


Рамиль   (2004-08-17 11:46:00) [24]

не писать
uses SysUtils;


Digitman   (2004-08-17 11:46:00) [25]


> RustiK   (17.08.04 11:44) [43]
> А как?


убери его из USES
убери также косвенные ссылки на ф-ции из этого модуля в иных используемых тобой модулях

и будет тебе столь долгожданное счастье


RustiK   (2004-08-17 11:44:00) [26]

А как?
Если можно в кратце расскажите.


Anatoly Podgoretsky   (2004-08-17 11:42:00) [27]

Не использовать.


Sandman25   (2004-08-17 11:42:00) [28]

Возможно


RustiK   (2004-08-17 11:41:00) [29]

Спасибо за разъяснительный ответ.

Как я и говорил что я ошибся в названии файла. Мне нужно избавиться от SysUtils.pas. Возможно ли вообще от него избавиться или урезать или заменить?


Anatoly Podgoretsky   (2004-08-17 11:32:00) [30]

Потом кто то другой будет ссылаться на эту глупость. :-)


Юрий Зотов   (2004-08-17 11:18:00) [31]

> RustiK   (17.08.04 10:20) [10]

> Кто-то на этом форуме кричал, кто не помню, что отказываясь от
> system.pas можно сэкономить ~200 кило.

На этом, и на других форумах произносится немало глупостей. В том числе и упомянутая Вами. Не нужно верить всему подряд. Мало ли, кто чего ляпнет, по безграмотности и дури своей, или просто в шутку?

Доказать? Пожалуйста. Экзешник вот такой пустой программы:
program Project1;
begin
end.
будет весить примерно 15 кило, несмотря на подключенный модуль System. О какой же экономии в 200 Кб может тогда идти речь?

Далее - эти 15 кило тоже не принадлежат одному лишь модулю System, еще они уходят на различные служебные дела (формат PE-файла, код загрузки системных библиотек и пр.). А из модуля System здесь подключается только необходимый служебный код, который используется всегда, даже и в пустом проекте

Далее. Вот Вы говорите что пишете на чистом API. ОК. Напишите на чистом API программу, которая просто показывает пустое окно - увидите, что она тоже весит примерно 15 кило. И тоже несмотря на подключенный модуль System. Мы видим, что по сравнению с пустым проектом размер программы практически не изменился. Значит, делаем вывод: написание программ на чистом API - вот это и есть то, что нам и нужно, если мы хотим бороться за малый размер.

И это так и есть. Потому что, сколько бы функций API мы не вызывали, код системных библиотек, где они сидят, все равно один, и в наш EXE он не входит. Входить в EXE будет только написанный НАМИ код, размер которого получится очень малым (реально - несколько десятков Кб, вряд ли более).

> RustiK   (17.08.04 10:35) [20]

> И гон все это чистой воды, что подключается только то, что
> используешь. Если ты хоть одну функцию хоть из одного 10
> мегабайтного модуля используешь то он весь и компилиться
> всместе с твоим проектом

Ну я же говорил - на этом, и на других форумах произносится немало глупостей. Зачем же еще увеличивать их количество?


Anatoly Podgoretsky   (2004-08-17 11:05:00) [32]

Единственный метод "удалить" system это все оттуда убрать, он останется, но будет пустым. То что у тебя не будет работать к делу не относится, ты же хотел избавиться.


Digitman   (2004-08-17 11:02:00) [33]


> RustiK


угу ... чайником бы тебя по макушке) ... чтобы не путал sysutils с system)


RustiK   (2004-08-17 11:00:00) [34]

Мужики только по голове не бейте...
У меня по моему ошибка в вопросе была :)))))))))


Рамиль   (2004-08-17 10:58:00) [35]


> с учетом того что не собираюсь использовать никаких inttostr
> и все такое

IntToStr, между прочим, описана в SysUtils


RustiK   (2004-08-17 10:58:00) [36]

Эх ладно щя по моему наличности переходит будем, лучше закрыть эту ветку.

ВСЕМ ПОКА, ВСЕМ СПАСИБО!


Рамиль   (2004-08-17 10:57:00) [37]


> ты сам-то знаешь , что тебе удалять нужно оттуда ?

Так ему же весь надо было удалить. Пусть оставит
unit System;

interface

implementation

end.


И компилит на здоровье


RustiK   (2004-08-17 10:57:00) [38]

с учетом того что не собираюсь использовать никаких inttostr и все такое


Digitman   (2004-08-17 10:57:00) [39]


> RustiK   (17.08.04 10:55) [29]


чудак человек !)

это ж напрямую зависит от того, что ты планируешь наворотить в своей программе !


RustiK   (2004-08-17 10:55:00) [40]


> ты сам-то знаешь , что тебе удалять нужно оттуда ?

Ну подскажи если не трудно


Страницы:   1 2 3 4

Наверх

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