Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Mateus ©   (2002-05-16 08:58:00) 

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


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

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


Slava   (2002-05-16 11:20:00) [2]

А вот и Правда

> Anatoly Podgoretsky © (16.05.02 11:13)

:o)))


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

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

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


Slava   (2002-05-16 11:17:00) [4]

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

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

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

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

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

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


Anatoly Podgoretsky   (2002-05-16 11:13:00) [5]

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


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

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

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


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

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

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


Romkin   (2002-05-16 10:26:00) [8]

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


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

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


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

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

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


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

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

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


Lord Warlock   (2002-05-16 09:27:00) [12]

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


Lord Warlock   (2002-05-16 09:18:00) [13]

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


Mateus   (2002-05-16 09:16:00) [14]

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

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


Mateus   (2002-05-16 09:09:00) [15]

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


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

Revsvr32.exe


Наверх

Титульная страница Поиск, карта сайта Написать письмо