| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Вызов функции из ДЛЛ |
| Автор: Gershkovich 7.3.2006, 10:35 | ||
| Ситуация : Мое приложение будет оперировать плагинами - т.е. множество ДЛЛ с набором разных функций. О функциях из ДЛЛ я буду знать тока имя и количество параметров (все параметры - integer) отдельной функции. Вызов не представляет проблем: (Это черновой вариант)
Проблему вызывает то, что у разных функций - разное количество параметров. Эти параметры я храню в TList. Когда организую цикл по TList-у, то компилятор в стэк пишет еще что-то (свои какие-то заморочки) в результате в стэке - каша. Как проще решить проблему? Заранее спасибо. |
| Автор: Демо 7.3.2006, 10:50 | ||
Не проще воспользоваться стандартным способом?
|
| Автор: Romikgy 7.3.2006, 10:54 | ||
| Покажи
Имхо передают кол-во параметров |
| Автор: Gershkovich 7.3.2006, 11:25 | ||
| 2 Демо Ты предлагаешь сделать типа такого ?
Согласись - некрасиво. 2 Romikgy К сожалению, щас показать не могу - исходники дома. В дебагере (который по Ctrl+Alt+C ) я явно видел манипуляции со стэком. Ты имеешь в ввиду что если организовать цикл, скажем, по массиву, то операций со стэком не будет? |
| Автор: Romikgy 7.3.2006, 12:22 | ||
Имхо так будет правильнее |
| Автор: Snowy 7.3.2006, 12:25 | ||
Тогда так:
Добавлено @ 12:32 Есть другой способ работы с плагинами. У плагина есть функции Load и Unload. Вся остальная работа делается через WM_COPYDATA. Передаешь код действия и данные. А реализованы они в плагине или нет - не важно. Используется соответственно только то, что реализовано, остальное опускается по дефолту. |
| Автор: Демо 7.3.2006, 14:11 | ||
| Не соглашусь. У тебя всегда известно максимальное количество параметров. И выглядеть это будет не как 20 разных функций, а как одна, но с максимальным корличеством параметров, все которые могут быть опущены. В результате ты в вызванной функции всегда можешь опрежделить их количество и реагировать соответствующим образом. Добавлено @ 14:12 Вместо всех функций, которые ты написал, достаточно одной:
|
| Автор: Romikgy 7.3.2006, 14:17 |
| Демо, одно единственное "но" когда среди параметров потребуется передать -1 !? |
| Автор: Gershkovich 9.3.2006, 17:33 |
| Спасибо всем откликнувшимся. Реализовал таки все на ассеблере. Но ваши ответы натолкнули меня на хорошие мысли. |