![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Замена юнита Forms на аналоги API [D6, WinXP]
Unforseen © (2004-02-04 18:58:00)Приветствую!
У меня есть DLLка, размер критичен, посему хотелось бы исключить из uses юнит Forms (который увеличивает длл-ку приблизительно в 350 раз), НО в этом самом юните содержиться крайне необходимая вещь, название которой - Aplication.ProcessMessages.
Вопрос: есть ли какая-нибудь надежда обойтись без этого громоздкого модуля и выехать на АПИ? Буду очень благодарен за пример.
Спасибо за внимание.
PS. И так вся длл-ка на апи, 10Кб всего - противно подключать из-за одной процедуры 350+Кб воды.
Akvilon (2004-02-06 23:57:00) [1]и finalization ......
а windows.pas голый в этом смысле
Cobalt (2004-02-06 22:19:00) [2]А вы посмотрите - что включает в себя модуль Forms, и что делается во включаемых модулях в их секциях initialization.
Unforseen (2004-02-06 21:46:00) [3]Согласен, неудобно.
Но что-то оптимизация в этом плане работает не очень хорошо. Взять хотя бы иначальный Apllication.ProcessMessages - я абсолютно точно знаю, что мне нужно только эта процедура, дельфи же решает, что неплохо бы довесить все остальное. А остального-то надо в данном случае - модуль windows с АПИшками, так нет - извольте 350 Кб.
Может где-что подстроить надо? Optimization вроде включена...
akvilon (2004-02-05 23:43:00) [4]/Unforseen (05.02.04 21:04) [4]/
Делфи включит в проект только использованные функции этого модуля. Мне кажется не удобным самому вписывать те же строки ...
Unforseen (2004-02-05 21:04:00) [5]В общем-то, да... Я просто не стал включать то, что могу сам подписать - т.е. если я использую 3-4 АПИ-функции весь модуль как-то ни к чему 8)
Akvilon (2004-02-04 20:43:00) [6]Какой смысл выбрасывать unit Windows? ведь в нем только апи функции и, к тому же, он никоим образом не увеличивает размер исполняемого файла (за счет "воды").
Unforseen (2004-02-04 19:48:00) [7]Во, так уже лучше! Спасибо большое!
Осталось обойтись без юнита Windows - и готово :)
jack128 (2004-02-04 19:11:00) [8]Ты уверен, что это единственная вешь, которую ты импользуешь из Forms ?
Ну примерно так
while PeekMessage (MSG, 0, 0, 0, PM_REMOVE) do
begin
TranslateMessage (MSG);
DispatchMessage (MSG);
end;