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

Вниз

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

 
Oleg_   (2005-07-25 17:27) [0]

Подскажите, реально ли задействовать com без реесстра. У меня есть dll и clsid. А вот доступа к соответствующим ветвям реестра нет.
Спасибо


 
just_me   (2005-07-25 19:06) [1]

"без реесстра" не реально, исполняющей среде СОМ нужно из него извлечь необходимые для загрузки СОМ-сервера данные.
Что же касается "доступа к соответствующим ветвям реестра", то они нужны не вам, среде СОМ


 
Opuhshii   (2005-08-12 00:47) [2]

ещё как можно!

реестр нужен для того чтоб определить местонахождение сервера,
а зная его нахождение можно руками его загрузить, получить нужную фабрику и наплодить объектов.

типа так,..


procedure TForm1.Button1Click(Sender: TObject);
var
 ClassFactory:IClassFactory2;
 DllHandle:THandle;
 ADllGetClassObject:TDllGetClassObject;
 AObject:INoRegister;
begin
 DllHandle:=LoadLibrary("C:\Program Files\Borland\Delphi6\Projects\DelphiMaster\ComHelo2\noregister.dll");
 ADllGetClassObject:=GetProcAddress(DllHandle,"DllGetClassObject");
 OleCheck(ADllGetClassObject(CLASS_NoRegister_,IClassFactory2,ClassFactory));
 ClassFactory.CreateInstance(nil,INoRegister,AObject);
 OleCheck(AObject.Method1);
end;


+ нужно добавить выгрузку DllHandle в нужный момент,..
DllCanUnloadNow

сервер создавался Internal т.е. без регистрации в реестре.


initialization
 TTypedComObjectFactory.Create(ComServer, TNoRegister, Class_NoRegister,
   ciInternal, tmApartment);


итог:доступ к соответствующим ветвям реестра ваще нафиг никому на локальной машине не нужен  8)


 
isasa ©   (2005-08-12 11:31) [3]

зачем так извращаться. Или COM, или обычные библиотеки.
А если вызвать

ADllGetClassObject:=GetProcAddress(DllHandle,"DllRegisterServer");
OleCheck(ADllGetClassObject(...));

то получим, те-же яйца, только вид сбоку.


 
Opuhshii   (2005-08-12 11:33) [4]

"А вот доступа к соответствующим ветвям реестра нет"



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

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

Наверх




Память: 0.47 MB
Время: 0.054 c
3-1153815094
Sasha K
2006-07-25 12:11
2006.10.01
Как сжать базу FireBird(не бэкап)???


2-1158138732
Sirus
2006-09-13 13:12
2006.10.01
Очистка DBGRID-а


3-1154344299
Neo Trinitron
2006-07-31 15:11
2006.10.01
Транзакции в MS Access


15-1157989615
Cyrax
2006-09-11 19:46
2006.10.01
Тонкости языка C++


2-1158250956
ph0sgen
2006-09-14 20:22
2006.10.01
перевести тип с С++ на Delphi