Форум: "Основная";
Текущий архив: 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.109 c