Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DLL [D5, Win2k]


Страницы:   1 2

id_privin ©   (2002-08-15 13:06:00) 

Такая проблемма : в run-time хочеться получить из DLL список имеющихся в ней функций, желательно еще мочь определить их тип.


Digitman   (2002-08-15 18:38:00) [1]

и где тут нашлось аж 3 варианта при такой абстрактной постановке задачи - непонятно)...

ну да - нашел и слава богу ..


id_privin   (2002-08-15 18:14:00) [2]


Вообщем за сегодня проблема была решена всеми 3-мя путями.

Всем большое спасибо. Особенное спасибо для Ekaterina


Digitman   (2002-08-15 17:08:00) [3]

в целом всен это выглядит так :

если DLL твоей разработки, то, что тебе требуется - это называется plug-in - механизм. Его реализация близка к предложенной <DiamondShark © (15.08.02 15:47)>

если DLL чужой разработки и нет детальной документации по ее интерфейсу - даже не начинай : задача решается лишь теоретически


Milz   (2002-08-15 16:32:00) [4]

Или сделай согласно Component Object Model, тогда не только твои проги будут определять что у тебя понапихано в dll, но и другие смогут. Как говориться зачем изобретать велосипед?


DiamondShark   (2002-08-15 15:47:00) [5]

Зачем мучить себя и юзера?

Конфигурационная программа твоя? Твоя.
ДЛЛ тоже твои? Твои.

В каждой ДЛЛ описывай функцию GetLibraryInfo, пусть она тебе возвращает описание содержимого в любом удобном для тебя формате.

Конфигуратор грузит ДЛЛ, пытается получить адрес функции GetLibraryInfo. Если получил, то вызывает и получает всю инфу, какую нужно. Если такой функции нет, то ругаешься, что левая ДЛЛ и все.


Digitman   (2002-08-15 15:06:00) [6]

Зачем вызываться-то они будут ? Ты что, знаешь, что делается внутри SomeStupidProc или SomeStupidFunc ?


id_privin   (2002-08-15 15:04:00) [7]

Не вызывать я их и не собираюсь, вызываться они будут потом, главное их имена написать куда надо.


Digitman   (2002-08-15 15:02:00) [8]

>id_privin

Нет, ну ты ушел от вопроса)
Ну. пусть имеет клиент эти списки, пусть видит, что вот "щелкнешь" туды - будт ему процедура, "сюды" - функция ... а дальше то что ? Ну начнет он щелкать из любопытства, предположим ... ты поймал "щелчек" и вызвал соотв. точку входа ... что ожидается тобой и клиентом в результате ?


id_privin   (2002-08-15 14:56:00) [9]

Этого всего не будет если никто не даст вразумительный ответ.

Кроме того : для того я и пишу утилитки, для того чтобы на одной-двух формочках можно было мышкой собрать настройки, которые потом будут рассованы в 6 таблиц, откуда потом будут считанны главной прогой. И для меня обсолютно не проблемма написать утилитку так, что бы клиент там все понял.


Внук   (2002-08-15 14:54:00) [10]

>>Digitman © (15.08.02 14:45)
А также
SomeCoolProc1 - процедура, черт те что делающая
SomeCoolProc2 - процедура, черт те что делающая

SomeCoolFunc1 - функция, черт те что делающая
SomeCoolFunc2 - функция, черт те что делающая
:-)


Digitman   (2002-08-15 14:45:00) [11]

>id_privin

ну, хорошо ...

получил клиент списки :

SomeStupidProc1 - процедура, черт те что делающая
SomeStupidProc2 - процедура, черт те что делающая

SomeStupidFunc1 - функция, черт те что делающая
SomeStupidFunc2 - функция, черт те что делающая

Дальше что ? Даже при наличии недюжинного интеллекта ?


id_privin   (2002-08-15 14:42:00) [12]

У них интелекта маловато, вот мышкой ткнуть это как раз для них.


Digitman   (2002-08-15 14:42:00) [13]

А на кой черт, извини, клиенту нужны ф-ции и процедуры, функциональность которых ему неизвестна ? Равно как и тебе ? DLL-то, надо понимать - не твоего творчества, чужая ?


Игорь Шевченко   (2002-08-15 14:39:00) [14]

id_privin © (15.08.02 14:37)

Не мучайте клиентов - отдайте им документацию


id_privin   (2002-08-15 14:37:00) [15]

Счастье, будет когда я в одну DLL напишу процедуры и функции, отдам клиенту, он запустит мою, утилитку для конфигурации моей же проги, и сможет увидеть набор функций в DLL, а из другой утилиты он увидит процедуры.


Digitman   (2002-08-15 14:32:00) [16]

Какую практическую пользу будет иметь сие "счастье" ? Мало ли что делает библиотечный вызов и что он возвращает (и возвращает ли) ...


id_privin   (2002-08-15 14:25:00) [17]

Мне параметры не нужны, для меня полным счастьем будет информация о том есть, или нет возвращаемое значение.


Игорь Шевченко   (2002-08-15 14:21:00) [18]

Opuhshii © (15.08.02 14:01)

Если DLL на C++, то хранятся :-)))


Opuhshii   (2002-08-15 14:01:00) [19]

в библиотеках (тех что DLL) не храняться описания параметров,..


id_privin   (2002-08-15 13:51:00) [20]

Буду очень благодарен за пример на Delphi, особенно если его размер меньше PEDump.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо