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

Вниз

Как зарегистрить DCOM-сервер, написанный как DLL?   Найти похожие ветки 

 
Mateus   (2002-05-16 08:58) [0]

Как зарегистрить DCOM-сервер, написанный как DLL ?
Хоть программно, хоть из командной строки ...


 
Lord Warlock ©   (2002-05-16 09:04) [1]

Revsvr32.exe


 
Mateus   (2002-05-16 09:09) [2]

Наверное имелось в виду Regsvr32.exe ?
А это случаем, не регистрация просто как ActiveX ?
Сейчас попробую ...


 
Mateus   (2002-05-16 09:16) [3]

Нет, не подходит Regsvr32.exe.
Не для этого она предназначена.

Как зарегистрить DCOM-сервер, написанный как DLL ?
Хоть программно, хоть из командной строки ...



 
Lord Warlock ©   (2002-05-16 09:18) [4]

Любой СОМ сервер - ActiveX


 
Lord Warlock ©   (2002-05-16 09:27) [5]

из меню Delphi пробовал?


 
Mateus   (2002-05-16 09:49) [6]

В случае regsvr32.exe DCOM-сервер регистрируется как обычный ActiveX и не более, то есть удаленное обращение к нему невозможно.
Меню DELPHI не подходит, это нужно сделать в процессе инсталляции.

Как зарегистрить DCOM-сервер, написанный как DLL ?
Хоть программно, хоть из командной строки ...



 
SEM ©   (2002-05-16 10:13) [7]

Программно:
1. Вызвать OleInitialize
2. Загрузить DLL c помощью LoadLibraryEx
3. Найти адрес функции регистрации NAME_DLLREGISTERSERVER
с помощью GetProcAddress
4. Вызвать найденную функцию
5. Вызвать FreeLibrary и OleUnInitialize

Если не понятно, могу кинуть на мыло свой код.


 
Mateus   (2002-05-16 10:25) [8]

Ясно, разберусь, спасибо.


 
Romkin ©   (2002-05-16 10:26) [9]

А доступ по DCOM - отдельная статья. Сначала регистрируешь regsvr32, а потом запускаешь dcomcnfg и делаешь что надо
Ограничения: Сервером может быть только станция с NT (4 или 2000 pro), в сети должен быть контроллер домена


 
Slava ©   (2002-05-16 10:47) [10]

> Mateus (16.05.02 09:49)
В случае regsvr32.exe DCOM-сервер регистрируется как обычный ActiveX и не более, то есть удаленное обращение к нему невозможно.

Насколько я знаю, DLL не может выступать в качестве DCOM-сервера, т.е. нельзя обратиться к ней удаленно через TDCOMConnection.


 
Mateus   (2002-05-16 11:03) [11]

2 Slava ©
Насколько я знаю, DLL не может выступать в качестве DCOM-сервера, т.е. нельзя обратиться к ней удаленно через TDCOMConnection.

Гм... Откуда такая информация ? Подскажи, может я зря время теряю.


 
Anatoly Podgoretsky ©   (2002-05-16 11:13) [12]

Просто DLL не является автономной единицей, а присоединяется к какому нибудь процессу, для это и потребуется делать .exe сервер


 
Slava ©   (2002-05-16 11:17) [13]

Я тоже бился одно время над этой проблемой.

В итоге было высказано предположение (кстати, если мне не изменяет память, товарищем Romkin"ым :o)), что код из DLL подгружается в адресное пространство твоей программы, а для удаленного компьютера такое невозможно. Отсюда объясняется следующее:

Работает:
1. DLL на твоей машине + TDCOMConnection
2. DLL на удаленной машине + TSocketConnection
3. EXE на любой машине + хоть TDCOMConnection, хоть TSocketConnection

Не работает:
1. DLL на удаленной машине + TDCOMConnection

Но это все предположения, полученные опытным путем.

PS Хотелось бы узнать Правду


 
Mateus   (2002-05-16 11:19) [14]

2Anatoly Podgoretsky © (16.05.02 11:13)
Просто DLL не является автономной единицей, а присоединяется к какому нибудь процессу, для это и потребуется делать .exe сервер

Буквально это означает, что если DCOM-сервер выполнен в виде dll, то ни о каком удаленном доступе речи быть не может? Для этих целей нужно использовать только exe-вариант.
Я все правильно осознал ?


 
Slava ©   (2002-05-16 11:20) [15]

А вот и Правда

> Anatoly Podgoretsky © (16.05.02 11:13)

:o)))


 
Adder ©   (2002-05-16 11:29) [16]

На самом деле все можно сделать.... сейчас не очень помню подробности.... в общем , суть в том, что для твоей Dll можно организовать суррогатный процесс ....из дома могу написать подробнее... (ключ реестра APPID)



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

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

Наверх




Память: 0.5 MB
Время: 0.009 c
3-88377
micha
2002-05-03 13:57
2002.05.27
новое в delphi 6


3-88326
Alban
2002-04-29 14:46
2002.05.27
Проблема копирования базы с одного MySQL Server на другой


3-88361
aka Andre
2002-04-15 13:59
2002.05.27
Ошибка при использовании dbExpress и MySQL


1-88527
allrussia
2002-05-15 13:01
2002.05.27
Д.д. Напомните, как сделать, чтобы INT64 работала в D3?


6-88570
EveryonE
2002-03-14 20:43
2002.05.27
Сокеты