Главная страница
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.004 c
15-1408003458
NailMan
2014-08-14 12:04
2015.03.29
Никому не интересна работа программера Delphi?


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


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


2-1391686016
XCoder
2014-02-06 15:26
2015.03.29
Возврат результата из вложенной функции


15-1407478480
AScript
2014-08-08 10:14
2015.03.29
ActionScript