Главная страница
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.014 c
3-88334
kopelev
2002-04-30 11:58
2002.05.27
Не так работает DBGRID


3-88368
Taciturn
2002-05-02 20:25
2002.05.27
Печать записи БД


14-88607
lipskiy
2002-04-18 13:52
2002.05.27
Народ! Возник вопрос о необходимости одного поля в UBPFD !


1-88495
3asys
2002-05-15 17:02
2002.05.27
Растягивание компонентов


1-88537
S@shka
2002-05-15 22:01
2002.05.27
Опять про DLL Delphi для C++ Builder