Форум: "Начинающим";
Текущий архив: 2011.10.02;
Скачать: [xml.tar.bz2];
ВнизИнициализация application в dll Найти похожие ветки
← →
Gu (2011-06-13 09:37) [0]Нужно ли создавать объект application (в dll) или достаточно в uses добавить Forms, и сделать application.handle:=h; // h - хэндл, полученый из приложения, которое юзает dll
← →
Anatoly Podgoretsky © (2011-06-13 09:49) [1]> Gu (13.06.2011 09:37:00) [0]
Не надо использовать ДЛЛ
← →
Loginov Dmitry © (2011-06-13 10:11) [2]
> Нужно ли создавать объект application (в dll) или достаточно
> в uses добавить Forms, и сделать application.handle:=h
Очередная попытка хранения форм в DLL :)
Откомпилируйте EXE и все DLL с пакетами. Не забудьте при этом, что для запуска приложения на другом компьютере потребуются дополнительные BPL-файлы (у вас они в каталоге C:\WINDOWS\System32\).
← →
Gu (2011-06-13 11:05) [3]мне не нужны bpl, я вопрос про них задавал?
← →
Loginov Dmitry © (2011-06-13 11:08) [4]
> мне не нужны bpl, я вопрос про них задавал?
Тогда вам не нужны формы в DLL, да и скорее всего сами DLL, забудьте про эту идею.
← →
sniknik © (2011-06-13 11:21) [5]> мне не нужны bpl, я вопрос про них задавал?
ты задал вопрос типа "как переходить улицу на красный цвет?" тебе ответили "на красный не переходят, переходи на зеленый"...
все одно хочешь на красный? ну вперед, на свой страх и риск, не спрашивая советов у людей которые так не делают. а раз спросил, то не возникай по поводу, что не о том отвечают... тебе еще много раз придется услышать - "dll не для форм! используй bpl!" (хотя, лично от себя... не стоит вообще заморачиваться разделением программы на части... вот посмотри на свою прогу, она 20 мб? больше? если нет, то не стоит.)
← →
Gu (2011-06-13 11:37) [6]>> Loginov Dmitry
где я тут о формах говорю?
>> sniknik
без демагогии, конкретный ответ нужен
← →
Anatoly Podgoretsky © (2011-06-13 11:43) [7]
> Gu (13.06.11 11:05) [3]
Торг тут не уместен
← →
Loginov Dmitry © (2011-06-13 11:49) [8]
> конкретный ответ нужен
> Нужно ли создавать объект application (в dll) или достаточно
> в uses добавить Forms, и сделать application.handle:=h
Создавать application в DLL однозначно - не нужно, тем более при наличии Forms в uses он будет создан автоматически. Обычно, начитавшись литературы из разряда "дельфи глазами архангельского", пишут application.handle:=h. Но так тоже не следует делать.
> где я тут о формах говорю?
Перевести "Forms" на русский, или сам справишься?
← →
Anatoly Podgoretsky © (2011-06-13 12:01) [9]
> Перевести "Forms" на русский, или сам справишься?
Тем более что теряется один из смыслов уменьшение размера, здесь происходит сильное разрастание.
← →
Anatoly Podgoretsky © (2011-06-13 12:21) [10]Цели введения DLLПервоначально предполагалось, что введение DLL позволит эффективно организовать память и дисковое пространство, используя только один экземпляр библиотечного модуля для различных приложений. Это было особенно важно для ранних версий Microsoft Windows с жёсткими ограничениями по памяти.
Далее, предполагалось улучшить эффективность разработок и использования системных средств за счёт модульности. Замена DLL-программ с одной версии на другую должна была позволить независимо наращивать систему, не затрагивая приложений. Кроме того, библиотеки DLL могли использоваться разнотипными приложениями — например, Microsoft Office, Microsoft Visual Studio и т. п.
В дальнейшем идея модульности выросла в концепции COM и SOM.
Фактически, полных преимуществ от внедрения DLL получить не удалось по причине явления, называемого DLL hell («ад DLL»). DLL Hell возникает, когда несколько приложений требуют одновременно различные, не полностью совместимые, версии DLL-библиотек, что приводит к сбоям в этих приложениях. Когда система выросла до определённых размеров, количество DLL стало превышать многие тысячи, не все из них обладали полной надёжностью и совместимостью, и конфликты типа DLL Hell стали возникать очень часто, резко понижая общую надёжность системы. Поздние версии Microsoft Windows стали разрешать параллельное использование разных версий DLL, что свело на нет преимущества изначального принципа модульности.
← →
Юрий Зотов © (2011-06-13 12:53) [11]> Gu (13.06.11 09:37)
> Нужно ли создавать объект application (в dll) или достаточно в uses
> добавить Forms и сделать application.handle:=h; // h - хэндл, полученый из
> приложения, которое юзает dll
Достаточно добавить Forms.
PS
Вас предупредили, что на этом пути Вас ожидают грабли, но слушать более опытных людей Вы не желаете. Что ж - вперед! Только потом не удивляйтесь, что программа вдруг начала выдавать неожиданные и непонятные глюки - Вы сами этого хотели. Как говорится, за что боролись - на то и напоролись.
PPS
Впрочем, не исключено, что это все же принесет некоторую пользу - например, несколько собьет уровень самоуверенности. Иногда именно так воинствующие ламеры постепенно становятся нормальными программистами.
← →
Loginov Dmitry © (2011-06-13 13:03) [12]Юрий, +1
А ведь многие прошли по этому пути и знают о граблях не по наслышке ;) Но все-таки, имхо, правильнее учиться на чужих ошибках.
← →
Anatoly Podgoretsky © (2011-06-13 13:43) [13]Но предпочитают на своих.
← →
Игорь Шевченко © (2011-06-13 20:20) [14]Надо читать Тейксейру и Пачеко, тогда не будет нужды читать местные ответы. Они довольно подробно расписывают, как, когда и зачем использовать дельфийские DLL с формами
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.10.02;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.004 c