Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.26;
Скачать: CL | DM;

Вниз

DLL   Найти похожие ветки 

 
id_privin ©   (2002-08-15 13:06) [0]

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


 
Игорь Шевченко ©   (2002-08-15 13:09) [1]

TDump спасет отца русской демократии


 
id_privin ©   (2002-08-15 13:22) [2]

Очень смешно, мне как раз и нужно объяснение как этот TDump работает.


 
Ekaterina ©   (2002-08-15 13:44) [3]

В MSDN есть описание PE-формата. Там же есть пример PEDump- аналог ТDump. Но он на С++ и огромный. Пример получения списка экспортируемых функций на Delphi могу привести. С их типом сложнее. Если имеются в виду их параметры, то TDump этого не делает. И вряд ли вообще возможно.


 
id_privin ©   (2002-08-15 13:51) [4]

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


 
Opuhshii ©   (2002-08-15 14:01) [5]

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


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

Opuhshii © (15.08.02 14:01)

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


 
id_privin ©   (2002-08-15 14:25) [7]

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


 
Digitman ©   (2002-08-15 14:32) [8]

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


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

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


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

id_privin © (15.08.02 14:37)

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


 
Digitman ©   (2002-08-15 14:42) [11]

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


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

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


 
Digitman ©   (2002-08-15 14:45) [13]

>id_privin

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

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

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

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

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


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

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

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


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

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

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


 
Digitman ©   (2002-08-15 15:02) [16]

>id_privin

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


 
id_privin ©   (2002-08-15 15:04) [17]

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


 
Digitman ©   (2002-08-15 15:06) [18]

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


 
DiamondShark ©   (2002-08-15 15:47) [19]

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

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

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

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


 
Milz ©   (2002-08-15 16:32) [20]

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


 
Digitman ©   (2002-08-15 17:08) [21]

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

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

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


 
id_privin ©   (2002-08-15 18:14) [22]


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

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


 
Digitman ©   (2002-08-15 18:38) [23]

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

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



Страницы: 1 вся ветка

Текущий архив: 2002.08.26;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.013 c
14-85165
Nikolay
2002-07-29 17:27
2002.08.26
Драйвер для CDRW


14-85175
Феликс
2002-07-26 13:50
2002.08.26
Кто уважает мужчину по имени Стивен Кинг?


1-85039
UniqueNick
2002-08-13 15:33
2002.08.26
Фильтрация данных в KADaoTable


3-84939
Nina
2002-08-07 13:28
2002.08.26
Помогите найти литературу по ораклу!


14-85184
Jack128
2002-07-25 12:53
2002.08.26
стоит ли использовать DataBases новичку