![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Убить System.pas [D7, WinXP]
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]
> ты сам-то знаешь , что тебе удалять нужно оттуда ?
Ну подскажи если не трудно