Главная страница
    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.005 c
1-88545
Jaguar
2002-05-16 11:41
2002.05.27
Работа с динамическим массивом объектов


3-88374
Maloy
2002-05-03 00:22
2002.05.27
Неподдерживаемая операция


4-88692
OlegK
2002-03-26 19:16
2002.05.27
Как зашатдаунить приложение?


1-88538
Коля
2002-05-16 13:00
2002.05.27
Как отучить окно оставлять кнопку в трее


3-88350
Ura
2002-04-30 10:45
2002.05.27
Немогу создать уникальный индекс в IB





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский