Форум: "Прочее";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
ВнизЛюбителям Forms in dll посвящяется Найти похожие ветки
← →
Leonid Troyanovsky © (2006-10-28 13:37) [0]Hi, All.
Прошу прощения, что разместил первоначально
сообщение в rsdn, но там сообщения храняться дольше,
т.е., я рассчитываю приводить эту ссылку:
http://rsdn.ru/Forum/Message.aspx?mid=2187439&only=1
в ответ на подобные вопросы.
--
Regards, LVT.
← →
Пусик © (2006-10-28 18:03) [1]От себя добавлю, что одна лишь утечка 4кб в MakeObjectInstance
должна была уже давно отучить от dll даже поклонников ShowModal.
Для них же добавлю, что если они не могут написать сходный
диалог на API, то им надо не писать dll,
а мести улицы и разбирать сараи.
Короче говоря, хватит позориться, бо dll это вещь
не только для дельфийского использования.
О, Великий Гуру!
Позволь мне самой решать(или игнорировать) те проблемы, которые возникают при использовании форм в DLL, а не пользоваться сомнительными категоричными высказываниями твоими.
Позволь также самой решать, разбирать ли мне сараи, мести ли улицы, внимать ли божественным вождям навроде тебя, истину вещающим с трибун, бо не только наш великий вождь имеет голову с мозгами на плечах и иногда пользоваться ей.
Позволь уже и другим думать, а не внимать бездумно.
Один раз ты, О Великий Гуру!, уже провозгласил нам, что DLL не предназначена для использования классов.
Второй раз было провозглашено о невозможности использования потоков в DLL.
Хорошо, что не все последователи твоего великого учения так думают, иначе уже мели бы грязные мостовые и плакали от бессилия понять всю глубину твоего учения.
← →
guav © (2006-10-28 18:19) [2]> уже провозгласил нам, что DLL не предназначена для использования
> классов.
> Второй раз было провозглашено о невозможности использования
> потоков в DLL.
да, да, да...
и вообще
DLLs considered harmful
http://www.geek-central.gen.nz/peeves/shared_libs_harmful.html
← →
DiamondShark © (2006-10-28 19:00) [3]
> Пусик © (28.10.06 18:03) [1]
А чего тебя так сплющило? Верёвкой тебя никто не связал, и линейкой по пальцам не нашлёпал.
Решай, коли решалка позволяет.
← →
Пусик © (2006-10-28 19:31) [4]
> А чего тебя так сплющило?
А что это такое? - Расшифруй.
> Верёвкой тебя никто не связал, и линейкой по пальцам не
> нашлёпал.
Странные какие-то высказывания. Тебя в детстве били?
> Решай, коли решалка позволяет.
Я-то решаю. А вот других заставляют снег пополам с грязью метелками месить.
← →
DiamondShark © (2006-10-28 20:17) [5]
> А что это такое? - Расшифруй.
Ну, эта... в смысле заколбасило.
> Странные какие-то высказывания. Тебя в детстве били?
Хочешь об этом поговорить?
> Я-то решаю. А вот других заставляют снег пополам с грязью
> метелками месить.
Назначение кого-то Великим Гуру, апелляция к множеству выдуманных последователей и приписывание высказываниям, пусть хоть трижды сомнительным и категоричным, свойства кого-то чему-то заставлять -- твои личные фантазии.
← →
Юрий Зотов © (2006-10-28 20:32) [6]> Leonid Troyanovsky © (28.10.06 13:37)
Спасибо за полезную ссылку. Скачал, почитаем, подумаем...
> Пусик © (28.10.06 19:31) [4]
No сomments. Надеюсь, Вы все поймете сами. Включая и то, что теперь не мешало бы сделать.
← →
DrPass © (2006-10-28 20:34) [7]
> DiamondShark © (28.10.06 20:17) [5]
Не обращай внимание, она просто Трояновского очень не любит :)
← →
Ketmar © (2006-10-28 20:41) [8]>[7] DrPass(c) 28-Oct-2006, 20:34
>Не обращай внимание, она просто Трояновского очень не
>любит :)
она никого не любит.
← →
metalfan_pda (2006-10-28 21:12) [9]от некоторрых коментов хочеся плакать...и смецца
← →
Anatoly Podgoretsky © (2006-10-28 21:20) [10]
> она никого не любит.
Не верю
← →
Ketmar © (2006-10-28 21:21) [11]>[10] Anatoly Podgoretsky(c) 28-Oct-2006, 21:20
>Не верю
upd: из здесь присутствующих и активно общающихся. так веришь? %-)
← →
DrPass © (2006-10-28 21:22) [12]
> Anatoly Podgoretsky © (28.10.06 21:20) [10]
Наверняка никого не любит. А из-за этого - не замужем. А из-за того, что не замужем - злая и никого не любит. Замкнутый круг. Не вырваться из него, ни разорвать
← →
Юрий Зотов © (2006-10-28 21:24) [13]Пусик, ответь достойно этим негодяям - скажи, что ты любишь меня...
:о)
← →
Ketmar © (2006-10-28 21:26) [14]>[13] Юрий Зотов(c) 28-Oct-2006, 21:24
я сказал "активно общающихся", а не "пишущих красивые и умные ответы". %-)
← →
DrPass © (2006-10-28 21:28) [15]
> Пусик, ответь достойно этим негодяям - скажи, что ты любишь
> меня...
Пусик, не ломай мою красивую теорию - я и так разачаровался почти во всем!
← →
Пусик © (2006-10-28 21:42) [16]
> Юрий Зотов © (28.10.06 21:24) [13]
> Пусик, ответь достойно этим негодяям - скажи, что ты любишь
> меня...
Юрий, тебя я обожаю.
Одного из немногих-)
← →
Ketmar © (2006-10-28 21:45) [17]>[15] DrPass(c) 28-Oct-2006, 21:28
капец твоей теории.
← →
Пусик © (2006-10-28 21:49) [18]
> Юрий Зотов © (28.10.06 20:32) [6]
> > Leonid Troyanovsky © (28.10.06 13:37)Спасибо за полезную
> ссылку. Скачал, почитаем, подумаем...
Как же связана статья по ссылке с модулем Forms?
← →
Юрий Зотов © (2006-10-28 21:51) [19]> Пусик © (28.10.06 21:42) [16]
Ваш мизинчик, мадемуазель... чмок, солнышко...
:о)
> All
Лед тронулся, господа присяжные заседатели... надеюсь, доживу и до "без немногих"...
:о)
← →
Юрий Зотов © (2006-10-28 21:54) [20]> Пусик © (28.10.06 21:49) [18]
Пока не знаю, не читал еще, потрепаться захотелось. Предполагаю, что через хэндл окна.
:о)
Но я верю Леониду. Если он привел эту ссылку - то наверняка неспроста.
:о)
← →
Пусик © (2006-10-28 22:04) [21]
> Юрий Зотов © (28.10.06 21:54) [20]
> > Пусик © (28.10.06 21:49) [18]Пока не знаю, не читал
> еще, потрепаться захотелось. Предполагаю, что через хэндл
> окна.
Хотелось бы услышать выводы после прочтения.
Пока криминала нигде не обнаруживается при использовании форм в DLL.
← →
Суслик © (2006-10-28 22:07) [22]Прошу прощения, Леонид, я не могу понять смысл фразы
> Короче говоря, хватит позориться, бо dll это вещь
> не только для дельфийского использования.
← →
Суслик © (2006-10-28 22:08) [23]а что она такая злая? это всегда так?
я, видно, что-то пропустил заходя в течении полугода на форум редко.
← →
Суслик © (2006-10-28 22:09) [24]А можно вопрос?
Зачем вообще dll использовать, если используешь TForm?
Все равно это никуда кроме дельфи пойти не может.
Почему бы не использовать bpl?
Т.е. почему желание запихнуть форму (TForm) в dll возникают?
← →
Пусик © (2006-10-28 22:11) [25]
> Суслик © (28.10.06 22:08) [23]
> а что она такая злая? это всегда так?
Если обо мне, то всегда, когда проявляется воинствующий ламеризм при любом уровне знаний.
А еще когда говорят о присутствующем человеке в третьем лице.
← →
Юрий Зотов © (2006-10-28 22:11) [26]> Пусик © (28.10.06 22:04) [21]
> Пока криминала нигде не обнаруживается при использовании форм в DLL.
При умелом использовании - да.
А так, некоторые проблемы действительно есть. Решаемые, но есть.
← →
Суслик © (2006-10-28 22:12) [27]
> Юрий Зотов © (28.10.06 22:11) [26]
Юра, а зачем вообще может понадобиться иметь форму в dll?
Можно на пальцах?
← →
Суслик © (2006-10-28 22:13) [28]
> Пусик © (28.10.06 22:11) [25]
Ты такая воинствующая, что я не могу считать тебя присутсвующей. Страшно.
← →
Пусик © (2006-10-28 22:14) [29]
> Юрий Зотов © (28.10.06 22:11) [26]
> > Пусик © (28.10.06 22:04) [21] > Пока криминала нигде
> не обнаруживается при использовании форм в DLL.При умелом
> использовании - да.А так, некоторые проблемы действительно
> есть. Решаемые, но есть.
При умелом использовании - можно "Hello, world" заставить AV выдывать.
Весь разговор идет о том, что LVT вообще, категорически не рекомендует использовать формы в DLL, вплоть до советов идти метлой махать.
Это уже не первый раз, когда свои привязанности LVT выносит в категорические рекомендации для всех.
← →
Kerk © (2006-10-28 22:15) [30]> [27] Суслик © (28.10.06 22:12)
plugins ?
← →
Kerk © (2006-10-28 22:15) [31]> [27] Суслик © (28.10.06 22:12)
У нас весь проект на таком построен
← →
Пусик © (2006-10-28 22:16) [32]
> Суслик © (28.10.06 22:13) [28]
> > Пусик © (28.10.06 22:11) [25] Ты такая воинствующая,
> что я не могу считать тебя присутсвующей. Страшно.
А ты не бойся сейчас. А бойся тогда, когда начнешь воинствующий ламеризм проявлять.
← →
Суслик © (2006-10-28 22:17) [33]
> Kerk © (28.10.06 22:15) [30]
> plugins ?
Почему не bpl?
У меня весь проект тоже на плугинах, но на bpl.
Зачем dll и связанные с ними проблемы (а они, таки есть, спорить, полагаю, не будешь).
Просто, чтобы круто было?
Понятное дело, что если ты делаешь некую логику без tform - типа просто функции. Тогда да, пиши хоть на c++. Но рОдные формы то зачем в dll сувать?
← →
Пусик © (2006-10-28 22:21) [34]
> У меня весь проект тоже на плугинах, но на bpl.
И ты их эти BPL всегда с собой с компа на комп возишь? УЖАС!
← →
Суслик © (2006-10-28 22:21) [35]
> Kerk © (28.10.06 22:15) [31]
> > [27] Суслик © (28.10.06 22:12)
>
> У нас весь проект на таком построен
Ты вообще как с ними, с bpl? Пытался делать для плагинов?
Я не подкалываю, просто думаю, может ты и не знаешь, что с помощью bpl делать это существенно проще.
← →
Суслик © (2006-10-28 22:22) [36]
> Пусик © (28.10.06 22:21) [34]
> > У меня весь проект тоже на плугинах, но на bpl.
> И ты их эти BPL всегда с собой с компа на комп возишь? УЖАС!
Ты о чем?
← →
Ketmar © (2006-10-28 22:23) [37]>[29] Пусик(c) 28-Oct-2006, 22:14
>Это уже не первый раз, когда свои привязанности LVT
>выносит в категорические рекомендации для всех.
не для всех, а для начинающих. разница огромна.
а когда начинающий поймёт, откуда "растут ноги" у этого совета и как обходить грабли -- он будет уже далеко не начинающим.
← →
Ketmar © (2006-10-28 22:24) [38]>[36] Суслик(c) 28-Oct-2006, 22:22
>Ты о чем?
о том, что Пусик, видимо, мало себе представляет, что такое приложение "для предприятия", например. отсюда у неё священный ужас: "как так? столько метров bpl таскать!"
← →
Kerk © (2006-10-28 22:24) [39][35] Суслик © (28.10.06 22:21)
> Я не подкалываю, просто думаю, может ты и не знаешь, что
> с помощью bpl делать это существенно проще.
Возможно не знаю.
НИКАКИХ неудобств еще не доставляли мне эти формы в DLL. Чем BPL лучше?
← →
Суслик © (2006-10-28 22:24) [40]Может кто-нить внятно объяснить, зачем может быть нужна dll с формой.
Хотя бы одно преимущество перед bpl?
← →
Другой © (2006-10-28 22:24) [41]Суслик © (28.10.06 22:21) [35]
Скажите, а существующий проект MDI сложно перевести на bpl-окна?
/*пошел поищу в инете, что да как*/
← →
Kerk © (2006-10-28 22:26) [42]> [41] Другой © (28.10.06 22:24)
У нас MDI-формы отлично работают DLLках.
Собственно, MDI-форм там бОльшая часть
← →
Суслик © (2006-10-28 22:26) [43]
> Чем BPL лучше?
Тем, что это абсолютно тот же дельфи, только в dll, который имеет расширение bpl и несколько специальных функций.
Т.е. как будто ты пишешь один большой проект, только побитый на модули (исполняемые).
← →
Суслик © (2006-10-28 22:28) [44]
> Другой © (28.10.06 22:24) [41]
> Суслик © (28.10.06 22:21) [35]
> Скажите, а существующий проект MDI сложно перевести на bpl-
> окна?
> /*пошел поищу в инете, что да как*/
> <Цитата>
По этому вопросу советую почитать статьи на королевстве дельфи (ищи по ключевому слову runtime). почитай еще статьи softwarer"а - http://www.softwarer.ru/
← →
Суслик © (2006-10-28 22:29) [45]Вот, собственно статья http://www.softwarer.ru/packages.html
Я ее читал достаточно давно, может тогда еще не все понимал, поэтому отвечать за то, что он прав во всем не берусь. Но почитать однозначно интересно.
PS. Брат модего друга учился с ним в одном классе. О нем говорят как о человеке серьезном и не пустослове. Т.е. можно и почитать.
← →
Sergey Masloff (2006-10-28 22:30) [46]Kerk © (28.10.06 22:15) [31]
>У нас весь проект на таком построен
Ну чтож, ты, наверное, уже понял. Чемодан вокзал... тьфу то есть магазин-метла-мести улицы. Дворников не хватает.
P.S. Я там тоже буду. Грешным делом тоже пару раз запуздыривал в былые годы формы в длл.
← →
Суслик © (2006-10-28 22:33) [47]
> Другой © (28.10.06 22:24) [41]
> Суслик © (28.10.06 22:21) [35]
> Скажите, а существующий проект MDI сложно перевести на bpl-
> окна?
Несложно.
Но! Нужно будет провести серьезный рефакторинг.
У пакетов есть серьезное ограничение - они не могут быть циклически связаны. Модули могут (под implementation если указывать). А пакеты никак.
Поэтому если у тебя есть циклически связанные модули А и Б и ты хочешь их разнести в разные пакеты, то тебе нужно будет выделить из них общее в модуль В, убрать цикл. всязь и сделать три пакета А, Б и В, при этом А юзает Б и В и Б юзает только В.
← →
Kerk © (2006-10-28 22:34) [48]> [46] Sergey Masloff (28.10.06 22:30)
Ты про всю команду разработчиков? И про проект общей стоимостью N миллионов рублей?
Повторюсь. НИКАКИХ неудобств ни разработчикам, ни пользователям, ни еще кому-то формы в DLL пока не доставили. What"s your problem? Религия?
← →
Ketmar © (2006-10-28 22:36) [49]>[46] Sergey Masloff 28-Oct-2006, 22:30
>Грешным делом тоже пару раз
>запуздыривал в былые годы формы в длл.
я тоже. когда плугин к Миранде писал. потом переделал на KOL. а потом потерял. %-)
>[47] Суслик(c) 28-Oct-2006, 22:33
>У пакетов есть серьезное ограничение - они не могут быть
>циклически связаны.
будь моя воля -- я бы циклические связи вообще везде аннигилировал.
← →
Суслик © (2006-10-28 22:37) [50]
> Ketmar © (28.10.06 22:36) [49]
> будь моя воля -- я бы циклические связи вообще везде аннигилировал.
когда пишешь с использование bpl это волей-неволей приходится делать.
т.е. у меня циклических связей нет. Т.к. если нужно будте разделать по пакетам - намучаешься.
← →
Другой © (2006-10-28 22:39) [51]Kerk © (28.10.06 22:26) [42]
> [41] Другой © (28.10.06 22:24)
У нас MDI-формы отлично работают DLLках.
Собственно, MDI-форм там бОльшая часть
Да, этот вариант тоже рассматриваю...
Суслик ©
Пошел читать.
Суслик © (28.10.06 22:33) [47]
Спасибо. Это не проблема, рефакторним.
← →
Leonid Troyanovsky © (2006-10-28 22:43) [52]
> Суслик © (28.10.06 22:07) [22]
> Прошу прощения, Леонид, я не могу понять смысл фразы
> > Короче говоря, хватит позориться, бо dll это вещь
> > не только для дельфийского использования.
Тут, как раз, все очень просто.
Для вывода диалога типа helloworld пишется
полмегабайтная библиотека, которая, кроме того,
протекает памятью.
Т.е., выводы со стороны должны соответствовать.
--
Regards, LVT.
← →
Sergey Masloff (2006-10-28 22:43) [53]Kerk © (28.10.06 22:34) [48]
>Ты про всю команду разработчиков? И про проект общей стоимостью N >миллионов рублей?
Ну да...
>Повторюсь. НИКАКИХ неудобств ни разработчикам, ни пользователям, ни >еще кому-то формы в DLL пока не доставили. What"s your problem? Религия?
Слушай, я мог там смайлов наставить конечно но думал ты и так поймешь ;-)
← →
Суслик © (2006-10-28 22:45) [54]
> Leonid Troyanovsky © (28.10.06 22:43) [52]
Т.е. суть фразы - не юзайте dll в дельфи?
Ну я бы тогда фразу иначе написал
> > > Короче говоря, хватит позориться, бо dll это вещь
> > > только не для дельфийского использования.
В общем, ты за bpl? (если нужны плугины)
← →
Пусик © (2006-10-28 22:45) [55]Религия - это глубоко личное.
Я бы не стал никому навязывать свои личные убеждения.
← →
Суслик © (2006-10-28 22:46) [56]
> Я бы не стал никому навязывать свои личные убеждения.
:)
← →
Sergey Masloff (2006-10-28 22:48) [57]Суслик © (28.10.06 22:46) [56]
А что смешного-то?
← →
Ketmar © (2006-10-28 22:49) [58]>[56] Суслик(c) 28-Oct-2006, 22:46
далеко не первая подобная опечатка. на фоне остального грамотного текста даёт повод задуматься. %-)
← →
Leonid Troyanovsky © (2006-10-28 22:49) [59]
> Юрий Зотов © (28.10.06 21:54) [20]
> Но я верю Леониду. Если он привел эту ссылку - то наверняка
> неспроста.
И это правильно.
Даже если я во всем остальном наврал
(а чем я хуже/лучше авторов, настаивающих на обратном),
то, все равно, ссылка, IMHO, побуждает задуматься.
--
Regards, LVT.
← →
Kerk © (2006-10-28 22:50) [60]> [53] Sergey Masloff (28.10.06 22:43)
:) Принимается
← →
Leonid Troyanovsky © (2006-10-28 22:57) [61]
> Суслик © (28.10.06 22:26) [43]
> Т.е. как будто ты пишешь один большой проект, только побитый
> на модули (исполняемые).
Один умный человек, т.е. Толик Тенцер, когда-то попросил
адептов разбиения привести аргументы за оное.
Прошло уж столько лет, а твердо помню, что ни одно "за"
меня никак не убедило (с учетом комментариев Анатолия).
Хотя, впрочем, есть проблемы, скажем, с количеством
ресурсов в exe в 9х, что толкает на использование длл.
Хотя, на использование _ресурсных_ длл.
Да и и кого сейчас волнует 9х.
--
Regards, LVT.
← →
Суслик © (2006-10-28 22:59) [62]Я статью не до конца дочитал, но вопрос возник (там все равно ответа нет, т.к. вопрос по дельфи).
Господа, кто знает - если надежда, что борланд создает свои BPL, следуя указанным правилам и ограничениями?
Насколько я знаю BPL это та же DLL. Следовательно DLLMain у нее тоже есть. И что там? Не нарушают ли они правила.
PS. Сам бы мог посмотреть, но квалификации не хвататет :)
← →
Суслик © (2006-10-28 23:00) [63]
> Leonid Troyanovsky © (28.10.06 22:57) [61]
Ты прямо как Анатолий П - сказал что-то однозначто умное, но не для народа :)
Т.е. ты вообще не юзаешь BPL, т.к. тебе разбиение не нужно? Так?
Я не Толя Тнецер, но попробую дать свое "за" - плугинизация.
Как иначе то?
← →
Юрий Зотов © (2006-10-28 23:01) [64]>[47] Суслик(c) 28-Oct-2006, 22:33
> У пакетов есть серьезное ограничение - они не могут быть
> циклически связаны.
Дима, а разве это ограничение? Иначе ведь и быть не может. Это совершенно правильное структурирование.
Ты врубись в идеологию пакета. Это же ПАКЕТ. Он пишется либо как самостоятельная боевая единица, либо как расширение другого пакета. Причем пишется часто (если не обычно) - третьей стороной.
Теперь представь такую картину: разработчик А пишет пакет АА, основанный на пакете BB разработчика B. Такое может быть запросто, не так ли? Собственно, ведь практически все наши пакеты - это расширение пакетов VCL.
Но может ли при этом быть, что пакет BB разработчика B, в свою очередь, основан на пакете AA разработчика A? То есть, могут ли появиться циклические ссылки?
Не могут, очевидно. Вернее, могут, но только в том случае, если A и B - одно и тоже лицо. Но ведь тогда наличие циклических ссылок прямо указывает на то, что пакеты AA и BB фактически являются одним и тем же пакетом, разве нет?
Значит, они и должны быть либо объединены в один пакет, либо переструктурированы. Все логично.
PS
То же самое - с плагинами Eclipse. Да и вообще с любыми раздельно компилируемыми модулями, видимо.
← →
Суслик © (2006-10-28 23:03) [65]
> Юрий Зотов © (28.10.06 23:01) [64]
Юра, ну что ты на меня так. Конечно я понимаю, что тут все ОК :)
Просто при переходе к ним это несколько сбивает с толку - а что делать с циклическими ссылками в юнитах? Потом, когда понимаешь, то все ОК.
← →
Kerk © (2006-10-28 23:04) [66]У меня на аттестации спрашивали, почему DLL вместо BPL. Не помню, что ответил и о чем говорили. Надо будет спросить.
← →
Leonid Troyanovsky © (2006-10-28 23:08) [67]
> Суслик © (28.10.06 22:59) [62]
> Господа, кто знает - если надежда, что борланд создает свои
> BPL, следуя указанным правилам и ограничениями?
Нет, конечно.
Бо, оную статью они не читали.
Когда-то давно, изучая Рихтера,
я написал в D3 некую длл, призванную грузиться во все
приложения (оную статью я тоже не читал, возможно,
что ее еще тогда не написали).
Ничего кроме System там не было, и я долго удивлялся,
почему мне пришлось переустанавливать NT4.
Ну, а ларчик открывался просто: там (system)
была инициализация variants (что, конечно, поправили,
но, лишь в D6, IMHO).
--
Regards, LVT.
← →
jack128 © (2006-10-28 23:11) [68]offtop конечно, но не могу удержаться
Суслик © (28.10.06 22:29) [45]
http://www.softwarer.ru/macro.html
Я в шоке! Просто валяюсь по полу! Недетская жесть!!! lol!!
← →
Суслик © (2006-10-28 23:17) [69]
> jack128 © (28.10.06 23:11) [68]
> Я в шоке! Просто валяюсь по полу! Недетская жесть!!! lol!
> !
я ее не читал, так что поддержать тебя не могу.
← →
Leonid Troyanovsky © (2006-10-28 23:17) [70]
> Суслик © (28.10.06 23:00) [63]
> Т.е. ты вообще не юзаешь BPL, т.к. тебе разбиение не нужно?
> Я не Толя Тнецер, но попробую дать свое "за" - плугинизация.
> Как иначе то?
Я, конечно, их юзаю, но как юзер, а не как деловепер :)
Но, по поводу плугинизации, хотя, конечно уважаю Sofwarer"а,
с ним, по поводу решающей роли bpl не очень согласен.
Бо, какая это плугинизация, если ты не сможешь подключить
свое творение ни к cpp, ни к vb, ни к иначе писанному хосту.
--
Regards, LVT.
← →
Суслик © (2006-10-28 23:18) [71]
> Leonid Troyanovsky © (28.10.06 23:08) [67]
> > Суслик © (28.10.06 22:59) [62]
> > Господа, кто знает - если надежда, что борланд создает
> свои
> > BPL, следуя указанным правилам и ограничениями?
> Нет, конечно.
> Бо, оную статью они не читали.
Из всего могу сделать вывод, что ты считаешь, что ни bpl ни dll с формами не есть гуд. Гуд - это писать полностью самому dll, учитывая указанные правила? Например, на чистом API? Ну... это тогда свою vcl нужно будет написать...
← →
jack128 © (2006-10-28 23:19) [72]Суслик © (28.10.06 23:17) [69]
я ее не читал, так что поддержать тебя не могу.
просто посмотри пример его первого компонента.
Я бы просто до такого не додумался. У меня слишком "правельно" мозги устроены..
← →
Суслик © (2006-10-28 23:19) [73]
> Leonid Troyanovsky © (28.10.06 23:17) [70]
> Бо, какая это плугинизация, если ты не сможешь подключить
> свое творение ни к cpp, ни к vb, ни к иначе писанному хосту.
А такое вообще возможно? И вообще - это уже концептуальный спор - что считать плугином.
Я все-таки говорил бы о том, что речь про плугинизацию своей программы - пусть кто-нить еще пишет мне плугины :)
← →
Суслик © (2006-10-28 23:21) [74]
> jack128 © (28.10.06 23:19) [72]
> Суслик © (28.10.06 23:17) [69]
> я ее не читал, так что поддержать тебя не могу.
> просто посмотри пример его первого компонента.
> Я бы просто до такого не додумался. У меня слишком "правельно"
> мозги устроены..
Ну а в чем конретно проблема то? Скорее всего это работать будет (не проверял). Что плохого то? Ты уж кокретизируй.
← →
Leonid Troyanovsky © (2006-10-28 23:25) [75]
> Суслик © (28.10.06 23:19) [73]
> > Бо, какая это плугинизация, если ты не сможешь подключить
> > свое творение ни к cpp, ни к vb, ни к иначе писанному
> хосту.
> А такое вообще возможно? И вообще - это уже концептуальный
Пуркуа па?
Только, ес-но, игра будет проходить на чужом поле.
Т.е., никаких Forms (если речь о dll), однозначно.
--
Regards, LVT.
← →
Суслик © (2006-10-28 23:27) [76]
> Leonid Troyanovsky © (28.10.06 23:25) [75]
> Т.е., никаких Forms (если речь о dll), однозначно.
А если о bpl?
Выводы, которые можно сделать из статьи и твоего внимания, обращенного на нее, настолько пугающи, что было бы очень хорош, если бы можно было бы поставить жирную точку.
Как жить то? :)
← →
Leonid Troyanovsky © (2006-10-28 23:33) [77]
> Суслик © (28.10.06 23:18) [71]
> Из всего могу сделать вывод, что ты считаешь, что ни bpl
> ни dll с формами не есть гуд. Гуд - это писать полностью
> самому dll, учитывая указанные правила? Например, на чистом
> API? Ну... это тогда свою vcl нужно будет написать...
Да почему же.
Есть области, в которых Forms не является нежелательными,
и вполне могут применятся в полном объеме.
Однако, не в классической длл.
Я, вообще, не пойму, чего так к ним все прикипели.
Это рудимент клиент-серверной технологии, который
ничего более (рудимента) не представляет.
MS просто вынужден оную технологию поддерживать
(для совместимости и пр).
Но, если уж кто-то решился писать длл, то пусть,
будет любезен, писать уж не хуже MS.
Ну, или, по крайней мере, по их правилам.
--
Regards, LVT.
← →
Ketmar © (2006-10-28 23:33) [78]>[68] jack128(c) 28-Oct-2006, 23:11
>http://www.softwarer.ru/macro.html
и что? нормально. сам такое же делал. %-)
← →
Leonid Troyanovsky © (2006-10-28 23:40) [79]
> Суслик © (28.10.06 23:27) [76]
> > Т.е., никаких Forms (если речь о dll), однозначно.
>
> А если о bpl?
Сейчас меня беспокоит не столько bpl,
сколько длл в классическом исполнении,
бо вреда от неправильного их использования
может быть гораздо больше.
Ну, а с bpl я могу лишь повторить вопрос TT:
нахрен, собс-но, разбивать exe.
Думаю, что ответы на него будут лишь дежавю.
--
Regards, LVT.
← →
Leonid Troyanovsky © (2006-10-28 23:46) [80]
> Ketmar © (28.10.06 23:33) [78]
> >http://www.softwarer.ru/macro.html
> и что? нормально. сам такое же делал. %-)
Изложение Александра, скажем, весьма нестандартно.
Но, для себя уж давно отметил, что мыслит он верно.
--
Regards, LVT.
← →
Пусик © (2006-10-28 23:48) [81]
> Суслик © (28.10.06 23:19) [73]
> > Leonid Troyanovsky © (28.10.06 23:17) [70] > Бо, какая
> это плугинизация, если ты не сможешь подключить> свое творение
> ни к cpp, ни к vb, ни к иначе писанному хосту.А такое вообще
> возможно? И вообще - это уже концептуальный спор - что считать
> плугином. Я все-таки говорил бы о том, что речь про плугинизацию
> своей программы - пусть кто-нить еще пишет мне плугины :
> )
Нет никаких принципиальных проблем при использовании dll с формами, написанной в Dephi в программах, написанных на других языках.
← →
DiamondShark © (2006-10-28 23:54) [82]
> нахрен, собс-но, разбивать exe.
1. для коллективной параллельной разработки.
1.1 для исключения необходимости таскать весь исходный код (или dcu), т.к. бОльшая часть этого кода, как правило, одновременно всем разработчикам не нужна, а для монолитной сборки обязательна.
2. для расширения функциональности без полной пересборки.
2.2. в том числе и сторонними разработчиками
3. для выборочной установки конечным пользователям только требуемой функциональности (хочешь Word монолитным ехе?)
← →
Sergey Masloff (2006-10-29 00:00) [83]Leonid Troyanovsky © (28.10.06 23:40) [79]
Ну разделение не очень связаных функциональных модулей. У меня был сделан единый "интерфейсный" exeкоторый представлял собой просто хост для специализированных функциональных окон - там оформление счетов работа с банками отчетность - вобщем до фига их было. И далеко не всем все были нужны.
Интерфейс практически формировался из базы - администрато при установке задавал какие модули нужны какому пользователю и при логине из базы читалось и строилось меню тулбары и прочее.
Ненужные модули не ставились вообще. Если появлялся новый модуль которого раньше вообще (на момент компиляции exe) и не предполагалось то клиенту отсылался сам модуль и скрипт для базы который при загрузке позволял программе подключить новый функционал.
Вроде ничего все работало. Число клиентов мерялось тыщами. Число комбинаций модулей - сотнями (всего модулей пара десятков).
Конечно это же можно было по-другому сделать но сначала это показалось самой удачной идеей ее и реализовал. Особо криминального ничего не встретилось хотя были сначала трудности которые решать пришлось.
← →
Leonid Troyanovsky © (2006-10-29 00:06) [84]
> DiamondShark © (28.10.06 23:54) [82]
http://groups.google.com/group/fido7.ru.delphi/browse_frm/thread/58852c116fb80460/68ec522bdfc1c74f?#68ec522bdfc1c74f
--
Regards, LVT.
← →
DiamondShark © (2006-10-29 00:06) [85]
> DiamondShark © (28.10.06 23:54) [82]
ну и по-мелочи там кое что...
Вообще говоря, я был бы безмерно счастлив, если б единицей компиляции, загрузки и исполнения был бы паскалевский unit. Но так как нет в жизни счастья, приходится убеждать себя, что .NET на сегодня наиболее похож на хрустальный идеал в небесной синеве.
← →
Ketmar © (2006-10-29 00:08) [86]>[85] DiamondShark(c) 29-Oct-2006, 00:06
>Вообще говоря, я был бы безмерно счастлив, если б единицей
>компиляции, загрузки и исполнения был бы паскалевский unit.
напиши. динамическая загрузка DCU вполне реальна. получишь пародию на Оберон. %-)
← →
Суслик © (2006-10-29 00:10) [87]
> Leonid Troyanovsky © (28.10.06 23:40) [79]
> Сейчас меня беспокоит не столько bpl,
> сколько длл в классическом исполнении,
Почему тебя это беспокоит - по работе нужно? Или так, для общего знания?
← →
Суслик © (2006-10-29 00:12) [88]
> Суслик © (29.10.06 00:10) [87]
> > Leonid Troyanovsky © (28.10.06 23:40) [79]
> > Сейчас меня беспокоит не столько bpl,
> > сколько длл в классическом исполнении,
> Почему тебя это беспокоит - по работе нужно? Или так, для
> общего знания?
Т.е. мне как бы твоя позиция не ясна - это плохо, но зачем-то нужно.
← →
DiamondShark © (2006-10-29 00:20) [89]
> Leonid Troyanovsky © (29.10.06 00:06) [84]
Не убедительно.
На счёт удивления пп 20 Мб...
Сейчас подсчитал... Ну, у нас 18 Мб .NET сборок. Без картинок и third-party.
Нормальный объём кода для средненькой такой системки...
← →
Leonid Troyanovsky © (2006-10-29 00:21) [90]
> Суслик © (29.10.06 00:10) [87]
> > Сейчас меня беспокоит не столько bpl,
> > сколько длл в классическом исполнении,
>
> Почему тебя это беспокоит - по работе нужно? Или так, для
> общего знания?
Для общего-ж, конечно, знания.
Просто противно видеть, как люди впитывают ложные истины,
распространяемые, между прочем, за деньги.
Ну, а их критику презирают (видимо, из-за ее бесплатности).
Видимо, прав был тот философ, который предупреждал,
что ложные воззрения умирают только с их носителями.
Хотя, конечно, есть и более гуманный вариант - они
умрут вместе с дельфи, или с win32.
--
Regards, LVT.
← →
Суслик © (2006-10-29 00:26) [91]
> Leonid Troyanovsky © (29.10.06 00:21) [90]
> вместе с дельфи
не надо! дельфи не умрет :) 11ая версия обещает избавиться от многих ошибок. ждать недолго.
← →
Leonid Troyanovsky © (2006-10-29 00:29) [92]
> DiamondShark © (29.10.06 00:20) [89]
> Нормальный объём кода для средненькой такой системки...
Не знаю, где сейчас Анатолий (был в Новосибирске).
Не знаю, чем он сейчас занимается.
Но, три (или четыре) года назад я завидовал Вове Аксенову,
что он мог зайти (да и зашел) на экскурсию к Толику
с баночкой малинового варенья.
Т.е., за три года много воды утекло.
Кстати, первый SQL (без UNION) на 20К я увидел у Анатолия.
--
Regards, LVT.
← →
Sergey Masloff (2006-10-29 00:33) [93]По мотивам ссылки.
Толик конечно человек авторитетный но проблемы с линковкой и как раз на цифре 20 Мег у дельфи были и возможно есть сейчас.
Вопреки прикидкам это не 2 - 4 а всего лишь немногим более полутора миллионов строк кода. Без особых картинок.
Что автоматизируем - крупную финансовую компанию ;-) Всю деятельность- от прямой до учета съеденых сотрудникамив столовых салатов.
Но кстати со скоростью линковки проблем не было. То есть скажем 10 и 19.5 Мб собирались почти одинаково а 20.1 выдавал через минут 20 кряхтенья internal error
← →
Sergey Masloff (2006-10-29 00:34) [94]Впрочем вышеописаные проблемы мы формами в dll я не решал;-)
← →
Leonid Troyanovsky © (2006-10-29 00:54) [95]
> Sergey Masloff (29.10.06 00:34) [94]
> Впрочем вышеописаные проблемы мы формами в dll я не решал;
Вот-вот.
На свете есть более насущные проблемы, чем те,
о которых я (и не только я) предупредил.
Короче, думаю, что более тема в раскрытии не нуждается.
Умный поймет, а дураку, кроме метлы, я б ничего и не доверял.
--
Regards, LVT.
← →
Petr V.Abramov (2006-10-29 01:37) [96]> Leonid Troyanovsky © (29.10.06 00:54) [95]
похоже, у Вас религия такая... (:
прекрасно это работает, избавляет от кучи гимра. если даже где-то в потрохах по 4К на DLL утекает - да и хрен с ним, нормальный юзер больше 3-4 DLL не загружает обычно, при подходе ровно как у Sergey Masloff (29.10.06 00:00) [83]
"принцип разделяй и властвуй", или большую проблему подели на мелкие, а мелкие отдай решать детям
← →
Petr V.Abramov (2006-10-29 01:40) [97]но действительно, при наличии .Net разговор принимает бессмысленный характер
← →
Leonid Troyanovsky © (2006-10-29 01:53) [98]
> Petr V.Abramov (29.10.06 01:37) [96]
> похоже, у Вас религия такая... (:
Эк тебя перевернуло.
Нет у меня религии, атеист я, позитивист, угу.
> прекрасно это работает, избавляет от кучи гимра. если даже
> где-то в потрохах по 4К на DLL утекает - да и хрен с ним,
Дык, пусть себе у тебя и течет, мы не против.
> нормальный юзер больше 3-4 DLL не загружает обычно, при
И чего, устают грузить-то? Иль больше не дают?
> на мелкие, а мелкие отдай решать детям
А вот учить отца купатца нефиг, Декарт ты наш.
--
Regards, LVT.
← →
Petr V.Abramov (2006-10-29 01:59) [99]> И чего, устают грузить-то? Иль больше не дают?
ни к чему им, не нужен рабочему человеку больший функционал, в наш век узкой специализации
> А вот учить отца купатца нефиг, Декарт ты наш.
да купайся ты как хочешь, мне-то что, Архимед хренов
← →
Суслик © (2006-10-29 02:02) [100]как сказал предалгатель-всем-удавиться Дима А. - ОИНЧ
т.е. отпишись и не читай. Класс! Зачем же бесполезные словобранки делать? А?
← →
GrayFace © (2006-10-29 17:57) [101]Спасибо за ссылку, очень полезено, но можно вкратце, какие, все-таки, проблемы возникают при формах в dll? В инициализации модулей, связвных с Forms.pas, вроде, ничего крименального нет, в финализации, вроде бы, тоже. И где в MakeObjectInstance может утекать память?
По статье:
Странно, что Loader может заблаговременно не загрузить user32.dll, по идее перекрестных ссылок нет и можно было бы таких ситуаций избегать.
Под словом "private lock", видимо, подразумивается сажание на объект синхронизации?
← →
evvcom © (2006-10-30 11:16) [102]> [101] GrayFace © (29.10.06 17:57)
> И где в MakeObjectInstance может утекать память?
Да не... она там не утекает. :) Просто при выгрузке dll должна вызваться FreeObjectInstance, а вот она не вызывается. Тоже как-то года 2 назад разбирался, чего это MemProof мемлики показывает? :(
← →
Leonid Troyanovsky © (2006-10-30 13:34) [103]
> evvcom © (30.10.06 11:16) [102]
> > И где в MakeObjectInstance может утекать память?
> Да не... она там не утекает. :) Просто при выгрузке dll
> должна вызваться FreeObjectInstance, а вот она не
Вот, во FreeObjectInstance и не освобождается.
Для exe это пофиг, для dll - 4к
См. также
http://groups.google.com/group/fido7.ru.delphi/msg/c452abd43a7ca99e
Но, дело даже не в этом. Сколько еще подобных переменных таятся
в коде Forms и иже (и это кроме публичных Screen, PopupMenuList etc).
Специально-то для длл оный код не тестировали.
Т.е., вылезают эти грабли неожиданно.
Например, после появления TAction применявшие формы в длл
заметили, что оные действия не работают.
--
Regards, LVT.
← →
Leonid Troyanovsky © (2006-10-30 14:23) [104]
> GrayFace © (29.10.06 17:57) [101]
> Странно, что Loader может заблаговременно не загрузить user32.
> dll, по идее перекрестных ссылок нет и можно было бы таких
> ситуаций избегать.
В большинстве случаев собс-ная длл будет грузиться гораздо
позже user32, advapi32 etc.
Но, возможны случаи, когда эта последовательность важна.
Я ранее по треду поминал D3 с инициализацией variant в System.
А ведь, иногда dll используют как юзеровские фильтры, и вполне
возможно, что привычного окружения там нет.
> Под словом "private lock", видимо, подразумивается сажание
> на объект синхронизации?
Это про то, что если уж определили блокировку, то озаботьтесь,
чтобы она была согласованной, с loader lock внизу иерархии?
Видимо, имеются ввиду те, которые внутри DllMain, как на рис 2.
--
Regards, LVT.
← →
Leonid Troyanovsky © (2006-10-30 14:42) [105]
> GrayFace © (29.10.06 17:57) [101]
> все-таки, проблемы возникают при формах в dll? В
Если кратко, то причины:
- дублирование кода и переменных не только RTL, но и
глобальных объектов Application, Screen, TPopupMenuList и т.д.
- в случае работы не дельфийском хосте - неработоспособность
Application.Idle, а также обработки препроцессных сообщений типа CM_*
Ну, а проблемы: самые разнообразные: начиная глюков тулбаров, меню
хинтов, вплоть до неспособности перемещаться по tab order.
Наверное, проще указать то, с чем проблем менее всего, т.е.
с формами, показываеммыми ShowModal.
Но, как я уже говорил, во-первых, тоже не без явных проблем,
а во вторых - с N количеством скрытых.
--
Regards, LVT.
← →
ANB © (2006-10-30 15:45) [106]
> Leonid Troyanovsky © (30.10.06 13:34) [103]
+1.
Лично нарвался на проблемы при использовании DLL. Пытался по ссылкам через RTTI работать с объектами приложения (точнее - с одаковскими компонентами). Время от времени ловил AV.
Основная проблема - при использовании DLL, которая подключила VCL, мы получаем дублирование служебных областей памяти. И имеет кучу фокусов.
Если уж так нужно - BPL + галка рант-тайм пакетов. Тогда проблем нету. Тем более это рекомендует борланд.
ЗЫ. Софтварер - мой гуру. Ему я привык доверять. А сколько я пытался сделать по своему - столько потом переделывал по его совету, т.к. наступал на грабли.
← →
GrayFace © (2006-10-31 11:40) [107]Leonid Troyanovsky © (30.10.06 14:23) [104]
Точно. %) Хотя можно и больше 4к.
Leonid Troyanovsky © (30.10.06 14:42) [105]
Еще я заметил изменение порядка форм после Application.Minimize из dll. И в одном месте есть обращение к Application.MainForm без проверки на nil.
Но основные грабли решаемы. В чужом приложении можно попробовать хук WH_CALLWNDPROCRET и вызывать Application.Idle при отсутствии сообщений (в OnIdle Handled ставить false).
← →
Leonid Troyanovsky © (2006-10-31 13:32) [108]
> GrayFace © (31.10.06 11:40) [107]
> Но основные грабли решаемы. В чужом приложении можно попробовать
> хук WH_CALLWNDPROCRET и вызывать Application.Idle при отсутствии
> сообщений (в OnIdle Handled ставить false).
Меня это совсем не возбуждает :)
А так, с пощью обычной dll можно сделать "плагин" хоть к блокноту,
даже без его кооперации. Если, конечно, ручками, VCLess.
--
Regards, LVT.
Страницы: 1 2 3 вся ветка
Форум: "Прочее";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
Память: 0.77 MB
Время: 0.045 c