Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1308038648
FIL-23
2011-06-14 12:04
2011.10.02
Бегуший текст в кнопке


2-1306446288
Германн
2011-05-27 01:44
2011.10.02
Самописный частичный аналог TButtonGroup


15-1307004281
Term
2011-06-02 12:44
2011.10.02
Установка двух версий делфи на один комп


1-1267656003
FalseMaster
2010-03-04 01:40
2011.10.02
Не работает Неlp Insight


15-1307987145
Andrey K
2011-06-13 21:45
2011.10.02
Караул. Не запустить Delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский