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

Вниз

Com объект без регистрации библиотеки   Найти похожие ветки 

 
Дмитрий СС   (2014-08-12 17:09) [0]

Добрый день. А можно ли создать экземпляр ком объекта не регистрируя его библиотеку.
Способ в лоб ничего не дал:


 function CreateMyObject: IMyObject;
 var
   Lib: HMODULE;
   DllGetClassObject: function (const CLSID, IID: TGUID; var Obj): HResult;
   CF: IClassFactory;
 begin
   ChDir(ExtractFilePath(ParamStr(0)) + "Bin");
   Lib := LoadLibrary("MyObject.dll");
   Win32Check(Lib > 0);
   DllGetClassObject := GetProcAddress(Lib, "DllGetClassObject");
   Win32Check(nil <> @DllGetClassObject);
   OleCheck(DllGetClassObject(CLASS_MyObject, IClassFactory, CF)); // Здесь в CF возвращается nil.
   OleCheck(CF.CreateInstance(nil, IID_IMyObject, Result));
 end;


Если можно, то как?


 
Дмитрий СС   (2014-08-12 17:14) [1]

Видимо для самой библиоетки нужно, чтобы она была зарегистрирована, там всякие TypeLibrary брать.


 
junglecat   (2014-08-12 17:20) [2]

а библиотека своя/чужая?


 
Дмитрий СС   (2014-08-12 17:27) [3]


> junglecat   (12.08.14 17:20) [2]

чужая
Lemmatizer http://aot.ru/download.php


 
Дмитрий СС   (2014-08-12 18:44) [4]

Пропустил stdcall:

DllGetClassObject: function (const CLSID, IID: TGUID; var Obj): HResult; stdcall;


Всем спасибо.



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

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

Наверх




Память: 0.47 MB
Время: 0.003 c
2-1391725343
Novicer
2014-02-07 02:22
2015.03.29
Актуализация данных в программе в сетевом режиме


3-1303730170
Дмитрий Тимохов
2011-04-25 15:16
2015.03.29
Код ошибки Timeout expired в MS SQL Server.


15-1407258646
Вова
2014-08-05 21:10
2015.03.29
Си в Делфи


2-1391642421
Drowsy
2014-02-06 03:20
2015.03.29
TibDataSet фильтруется через Filter,Filtered?


15-1407837735
Пит
2014-08-12 14:02
2015.03.29
Интересный номер машины..