Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.05.27;
Скачать: [xml.tar.bz2];

Вниз

Как зарегистрить 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.006 c
4-88670
JIX
2002-03-26 14:21
2002.05.27
Цвета экрана


3-88340
rex
2002-04-30 12:41
2002.05.27
Хочу сделать дистрибутив проги с FireBird


1-88478
MyasNick
2002-05-15 09:26
2002.05.27
Print Preview


1-88529
Mateus
2002-05-16 08:58
2002.05.27
Как зарегистрить DCOM-сервер, написанный как DLL?


1-88477
cult
2002-05-15 13:00
2002.05.27
Перерисовка компонента.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский