Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.08.26;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.007 c
14-85167
Sten
2002-07-28 01:38
2002.08.26
свой Proxy сервер


14-85211
Delph
2002-07-31 18:29
2002.08.26
Клиент для форума существует?


1-85046
Сергиус
2002-08-13 05:20
2002.08.26
ошибка при уничтожении DataModule


3-84922
fvl
2002-08-07 09:43
2002.08.26
работа с полями типа LONG


1-85026
Chinas
2002-08-16 14:48
2002.08.26
Немогу вызвать fsMDIForm и fsMDIChild из DLL





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский