![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TMenuItem.Click -> any.dll\procedure
Dennis I. Komarov © (2009-05-22 10:38:00)Вопрос - не вопрос но:
Есть: некое приложение, интерфейс которого грузим из некой БД согласно правам пользователя, который запустил это приложение. В частности, возьмем ситуацию с TMainMenu. Согласно правам загрузилось дерево меню и подменюшек. Есть некая "ссылка" (int) на то, что должно выполнится при вызове соответствующего пункта. Процедура сего действия, а так же все интерфейсы и т.п. вынесены в библиотеку (dll).
Вопрос такой: Какая (а точнее, кто придумает лучшую) логика должна быть, чтобы связать конечный пункт менюшки с соответствующей процедурой в библиотеке, при том чтобы выполнялось условие: в приложении описана только логика а конкретные данные вынесены из него, т.е. при добавлении нового пункта (в БД) не изменялось само приложение, а только библиотека (или добавлялась новая)
Сергей М. (2009-05-28 20:52:00) [1]
> а то я уже собрался сам считать
Не, новых кулибиных нам не надо)
Dennis I. Komarov (2009-05-28 17:39:00) [2]
> Сергей М. © (28.05.09 17:36) [150]
:) Отлично, а то я уже собрался сам считать
Сергей М. (2009-05-28 17:36:00) [3]Убивать - да, "не моги")
Но FreeLibrary приводит к "убийству" лишь тогда, когда она вызвана ровно столько раз, сколько раз перед этим была вызвана соответствующая ей LoadLibrary.
Иными словами, каждый вызов LoadLibrary приводит к увеличению сч-ка ссылок на модуль на единицу (т.е. впервые загруженная этим вызовом библ-ка имеет значение сч-ка = 1), каждый вызов FreeLibrary - соотв-но к уменьшению оного на единицу. Как только в рез-те очередного вызова FreeLibrary сч-к ссылок обнуляется, система выгружает модуль из АП тек.процесса.
Игорь Шевченко (2009-05-28 17:34:00) [4]
> Где же он открытый, если за использование midas-модуля денюжку
> требуют ?)
Вроде уже давно не требуют, нет ?
Dennis I. Komarov (2009-05-28 17:26:00) [5]Понял, т.е. если из одной dll загрузил два окна, то закрывая одно убивать ее не моги :)
Сергей М. (2009-05-28 17:15:00) [6]
> или второй раз будет "холостым" и вернется тот же хендл?
>
>
Не совсем "холостым", но хендл получишь тот же самый.
Dennis I. Komarov (2009-05-28 17:09:00) [7]Если второй раз выполнить LoadLibrary одной библиотеки, то в памяти будет два экземпляра библиотеки и два различных хендла или второй раз будет "холостым" и вернется тот же хендл?
Dennis I. Komarov (2009-05-28 13:33:00) [8]
> Не, это ты на чужом хочешь на халявку прокатиться)
Ну сперва я его изобрел, потом узнал что он есть, и за него денюжку хотять. А кататься я на нем не буду - жадные они :) Я лучше свой сделаю...
Сергей М. (2009-05-28 13:21:00) [9]
> Я тут, понимаешь, велосипед изобрел
Не, это ты на чужом хочешь на халявку прокатиться)
Dennis I. Komarov (2009-05-28 13:18:00) [10]
> Жаба душит ?)
Я даже не знаю какую денюжку они требуют, так что жаба приползет поздже :)
Я тут, понимаешь, велосипед изобрел, а они уже денюжку хочуть :)
Сергей М. (2009-05-28 13:10:00) [11]
> это совсем плохо
Жаба душит ?)
Dennis I. Komarov (2009-05-28 13:06:00) [12]
> Где же он открытый, если за использование midas-модуля денюжку
> требуют ?)
у-у-у....
так это совсем плохо. :)
Сергей М. (2009-05-28 13:01:00) [13]
> формат открытый?
Где же он открытый, если за использование midas-модуля денюжку требуют ?)
Dennis I. Komarov (2009-05-28 12:57:00) [14]
> Данные передаются в своем формате, упакованном в OleVariant.
> Причем, передаваться могут не все данные, а только изменившаяся
> на клиенте часть.
формат открытый? Сможет ли приложение написанное скажем на MSVC++ работать с ним? midas.dll для этого будет достаточно?
clickmaker (2009-05-28 12:48:00) [15]> TDataSet -> некий текстовой формат (к примеру cds, xml)
> -> упаковали -> передали по TCP/IP -> получили -> распакавали
> -> преобразовываем в TDataSet
MIDAS именно так и работает.
Данные передаются в своем формате, упакованном в OleVariant. Причем, передаваться могут не все данные, а только изменившаяся на клиенте часть.
Сергей М. (2009-05-28 12:18:00) [16]
> MIDAS не COM?
MIDAS основана на COM, но это специфичнаянадстройка.
Dennis I. Komarov (2009-05-28 12:15:00) [17]У меня пока такая мысль:
TDataSet -> некий текстовой формат (к примеру cds, xml) -> упаковали -> передали по TCP/IP -> получили -> распакавали -> преобразовываем в TDataSet (или чего другое, в зависимости от IDE)
Dennis I. Komarov (2009-05-28 12:01:00) [18]
> Сергей М. © (28.05.09 11:56) [133]
> О MIDAS речь тем более идти не может - это технология и
> среда, специфичная для сред разработки от Борланд, а УЮ-
> среда про Борланд ничего не знает.
>
> Зато наверняка знает про OLE, COM, ActiveX, CORBA)
MIDAS не COM?
Тогда вычеркнул из списка :)
> Зато наверняка знает про OLE, COM, ActiveX, CORBA)
Можно подробнее, примеры, хорошо\плохо, чем опасно... и т.д.
Сергей М. (2009-05-28 11:56:00) [19]
> УЮ ну не знает что это и как его есть
Так он еще много чего может не знать, не только это)
О MIDAS речь тем более идти не может - это технология и среда, специфичная для сред разработки от Борланд, а УЮ-среда про Борланд ничего не знает.
Зато наверняка знает про OLE, COM, ActiveX, CORBA)
Dennis I. Komarov (2009-05-28 11:56:00) [20]
> clickmaker © (28.05.09 11:46) [132]
>
> авторизацию может проводить хост-экзе, а в библиотеку передавать
> уже готовый интерфейс сервера приложений.
Так оно и задумано. Задача обмена инфы [131]