Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.31;
Скачать: CL | DM;

Вниз

RTTI?   Найти похожие ветки 

 
Piter ©   (2005-07-09 21:54) [0]

Мы находимся внутри DLL-плугина к программе. Программа написана на Delphi.

В плугин передается Application:TApplication

Можно узнать какие методы есть у главной формы (Application.MainForm)?


 
Игорь Шевченко ©   (2005-07-09 21:59) [1]


> Можно узнать какие методы есть у главной формы (Application.MainForm)?


Published-методы и перекрытые виртуальные вроде при желании можно, пройдя по VMT. Статические и классовые нельзя.
Но пройти по VMT можно только руками, взяв адрес VMT из 32-х бит по адресу Application.MainForm.


 
Юрий Зотов ©   (2005-07-09 22:10) [2]

> Piter ©   (09.07.05 21:54)

ИМХО, неверная схема взаимодействия приложения и плагина. Плагин и не должен знать ничего о приложении. Это приложение должно заведомо знать, что плагин имеет заведомо определенные методы - и просто вызывать эти методы плагина, когда ему (приложению) нужно. Задача же плагина - эти методы реализовать. И все.

Если для этого плагину требуются какие-то данные из приложения, то их можно передать через callback-функции, через сообщения, через общую область данных (инициализируемую приложением) и т.п.


 
DrPass ©   (2005-07-09 22:34) [3]

Если нужна RTTI, плагины лучше делать в виде bpl. Впрочем, их вообще лучше делать в виде bpl, если в плагине будут использоваться какие-либо классы VCL.


 
Anatoly Podgoretsky ©   (2005-07-09 22:40) [4]

Если речь про RTTI, то в ДЛЛ своя RTTI


 
Piter ©   (2005-07-10 01:07) [5]

Юрий Зотов ©   (09.07.05 22:10) [2]
ИМХО, неверная схема взаимодействия приложения и плагина


программа писана не мной, и не я разрабатывал схему взаимодействия

P.S. Хм, а неужели с помошью RTTI нельзя выташить информация о методах и передаваемых в них параметрах? Вроде для того и создавалась...

Что мешает?


 
Юрий Зотов ©   (2005-07-10 01:12) [6]

> Piter ©   (10.07.05 01:07) [5]

> неужели с помошью RTTI нельзя выташить информация о методах

Для published - можно. Для виртуальных и динамических - тоже можно. Для прочих - нет.

> и передаваемых в них параметрах?

Для published - можно вытащить и параметры.



Страницы: 1 вся ветка

Текущий архив: 2005.07.31;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.083 c
1-1120900326
KyRo
2005-07-09 13:12
2005.07.31
Случайное число


4-1117827446
Gefest
2005-06-03 23:37
2005.07.31
Изменение системной даты


3-1119623186
Вольный Стрелок
2005-06-24 18:26
2005.07.31
вставка апострофа в строковую константу в Oracle-скрипте


11-1103779933
DVK
2004-12-23 08:32
2005.07.31
Лишняя начальная строка в ListView


1-1121197077
ronyn
2005-07-12 23:37
2005.07.31
Загрузка программы при загрузке ОС.