Главная страница
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.005 c
15-1407918944
Друг
2014-08-13 12:35
2015.03.29
Помогите настроить VPN и браузер


15-1408048206
Юрий
2014-08-15 00:30
2015.03.29
С днем рождения ! 15 августа 2014 пятница


15-1408018598
Дмитрий СС
2014-08-14 16:16
2015.03.29
Как это называется?


15-1407529803
Юрий
2014-08-09 00:30
2015.03.29
С днем рождения ! 9 августа 2014 суббота


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