Форум: "Основная";
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];
ВнизКак создать Ole обьект вручную,т.е. не используя tlb файл, без регистрации? Найти похожие ветки
← →
iZEN (2001-12-23 06:42) [12]Нечто подобное OLE/COM можно реализовать по следующему сценарию.
1. Написать в DLL функцию-фабрику классов, которая возвращает ссылку на класс, имя которого передано ей в виде текстовой строки.
2. Программа-клиент загружает эту DLL, вызывает фабрику класса, передавая ей имя класса как параметр; создаёт по полученной классовой (типа TClass) ссылке экземпляр класса -- объект (TObject), методы которого можно будет вызвать по именам (например: o.Invoke("FirstMethod"; var Params; var Res)). (В VCL для этого есть все необходимые детали в виде собственной реализации псевдо-COM).
Итак, гипотетический пример:
var
c: TClass;
o: TObject;
res: Integer;
begin
c := DLLFactoryGetClass("TMyClass");//Получение ссылки на класс TMyClass
o := c.newInstance();//Создание экземпляра класса TMyClass
o.Invoke("Add", [2,2], res);//Вызов метода экземпляра по имени
WriteLn("2+2=", res);//Вывод результата
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.005 c