|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.07.2009, 15:26 | #1 |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
Поддержка плагинов
Привет всем! Я по юзал поиск по форуму, но не нашёл того, что мне было нужно.
В общем: В EXE объявлен класс Код:
Код:
В итоге я без проблем могу вызывать mulIntOn2 и читать/изменять те 3 свойства. Теперь вопрос: Как мне из DLL перехватывать вызов функций mulIntOn2, setIntVar, setStrVar и setBoolVar так, что-бы я мог получить параметры, переданные функции, вернуть то что я хочу или вызвать исходную функцию? Помогите пожалуйста... |
29.07.2009, 15:38 | #2 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Вы можете отслеживать это все хозяйство в самой DLL или в основной программе?
То есть: Программа осуществляет вызов функции из библиотеки, какие параметры Вы хотите поймать? И Где? Если в DLL, то здесь можно просто в каждую функцию вставить вызов специальной процедурки, в которую и происходит передача параметров (а она уже там ими распоряжается).
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
29.07.2009, 16:13 | #3 | |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
Цитата:
|
|
29.07.2009, 17:05 | #4 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Делал уже кучу разных систем поддержки плагинов. Скажу сразу, подход крайне не корректный. Если делается все это для Windows, самый оптимальный и лучший подход это
1. все свести к функциям, к низкому уровню, без всяких классов (как вы сделали) - только Pointer(на класс или структуру), PChar и другое. 2. все вызовы в формате stdcall; 3. плагину дать управления как возможно меньше. Если все-таки никак, то делаите экспорт нужной функции из .exe (в этой функции сделать жесткую проверку на все входящие данные). В плагине получить текущий (т.е. приложения) дескриптор, и получить адрес экспортируемой функции, таким образом плагин сможет что-то вызывать/обращаться к программе. Как пример могу посоветовать Object Dock Docklet SDK. скачайте и просмотрите как там все организовано. Ваш вариант реализации плагинов только для Delphi, т.е. другие разработчики будут привязаны к Delphi, и не смогут использовать другой язык для реализации плагинов, а это большой минус. Последний раз редактировалось BOBAH13; 29.07.2009 в 17:08. |
29.07.2009, 18:03 | #5 | |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
Цитата:
Я вот думал record использовать. Но не совсем то что надо будет. А перехватывать то как? Последний раз редактировалось Stilet; 30.07.2009 в 11:02. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание плагинов для Opera | M_script | Общие вопросы C/C++ | 3 | 08.06.2009 16:43 |
Создание плагинов на DLL: SharedMemory | darkstarx | Общие вопросы Delphi | 13 | 22.01.2008 22:31 |
Помогите с разработкой приложения с поддержкой плагинов. | krik | Общие вопросы Delphi | 3 | 17.06.2007 13:40 |
Написание программ или плагинов для тюнера Behold TV | СТРАННИК | Общие вопросы Delphi | 0 | 29.01.2007 09:54 |