Форум: "Основная";
Текущий архив: 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