![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
работа с DLL и тем что внутри. [D6, WinXP]
newver © (2004-10-07 07:48:00)предположим есть DLL в которой имеется набор экспортируемых функций.
1. как узнать, какие там есть функции (имена)
2. их параметры (количество, тип)
или
есть текстовый файл в котором прописаны все эти функции и параметры.
как мне подключить их (програмно разумеется, считывая из файла) и выполнить?
т.е. как обратится к функции, если её имя и параметры содержатся в "строке" (имет вид строки) ?
newver (2004-10-07 09:33:00) [21]это не глобальная какая-то програ, а обычная лаб. раб. :)
извиняюсь за непонятность в объяснении.
изначально Дано: DLL и текстовый файл в котором описаны (досканально) все функции (тип, параметры, типа параметров и т.д.).
Распознать "ху ис ху" в этом текстовом файле получилось, а выполнить не могу, ума не хватает. :(
После обработки текстового файла у меня получается массив в котором содержатся имена файнкций их типы и передаваемые параметры, а дальше как ??? как вызвать и выполнить её динамически?
newver (2004-10-07 09:29:00) [22]предположим, что имена, возвращаемый тип, известны, параметры (количество и их тип) тоже, как тогда можно подключить???
т.е. в текстовом файле идёт полное описание всех функций и их параметров.
Digitman (2004-10-07 08:54:00) [23]так ведь это совсем не то что ты описал изначально !
в текстовом файле у тебя прописаны не описания ф-ций и их форм.параметров, а порядок вызова тех или иных ф-ций с конкретными значениями факт.параметров ... это своего рода скрипт, который тебе требуется интерпретироватьсредствами будущей своей программы
в такой ситуации, когда прототипы ф-ций (т.е. детальные их описания) отсутствуют, без дизассемблера не обойтись ... только дизассемблировав ДЛЛ и проанализировав полученный листинг можно с достаточной вероятностью успеха получить инф-цию о :
- точных именах ф-ций/процедур (в принципе эта инф-ция м.б. получена и иным удобным способом, например, средствами утилит dump.exe или depends.exe)
- реальных языковых соглашениях об их вызове
- количестве, типе и порядке передачи параметров для каждой из эксп.точек входа
без получения такой точной инф-ции двигаться далее в разработке своего скрипт-интерпретатора бессмысленно
newver (2004-10-07 08:35:00) [24]другой пример:
funct_name := 'print' ;
param := '("1","2","3");
ОК. как мне дельфи компилятору сказать что funct_name это не строка а имя функции, а param это её парамтры???? А потом вызвать эту функцию из DLL.
newver (2004-10-07 08:31:00) [25]это два разных варианта.
объясняю по другому:
есть программа (которую надо написать) и текстовый файл с DLL. внутри текстового файла описана функция которая есть в DLL. Задача программы (которую надо написать), открыть этот текстовый файл, считать функцию, распознать, где есть имя а где параметр (это совсем дургое и пока не нужно) и выполнить эту функцию (основная задача). Содержимое файла может меняться!!! а программа должна уметь находить указанную функцию в текстовом файле, сама определять какие там у него параметры и выполнять функцию.
Digitman (2004-10-07 08:03:00) [26]
> есть текстовый файл в котором прописаны все эти функции
> и параметры.
как-то не вяжется это с вопросами 1 и 2
если есть описание, то что там узнавать-то ?
приведи фрагмент описания какой-либо ф-ции и ее параметров из этого текст.файла ..