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

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

работа с DLL и тем что внутри. [D6, WinXP]


Страницы:   1 2

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
если есть описание, то что там узнавать-то ?

приведи фрагмент описания какой-либо ф-ции и ее параметров из этого текст.файла ..


Страницы:   1 2

Наверх

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