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

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

MIDAS, Сервер приложений в виде DLL [D6, ]


Slava ©   (2001-12-27 10:17:00) 

Как зарегистрировать Remote Data Module, если он находится в DLL?

С .exe все понятно: один раз запустил и все, а с DLL заминочка вышла :о(


Slava   (2001-12-29 10:43:00) [1]

ВСЕ!
РАЗОБРАЛСЯ!
Во всем "виноват" антивирусник, который по-умолчанию блокирует
все на..р

E-Safe называется...

Прошу прощения.


Slava   (2001-12-29 10:02:00) [2]

Вот ведь блин, а?

Проблема следующая:

Есть 2 компа: "МОЙ_КОМП" (Delphi6) и "НЕ_МОЙ_КОМП" (нет Delphi).
На обоих зарегин RemoteDataModule.
Создаю клиентское приложение с TDCOMConnection.

В Объект Инспекторе
Прописываю ComputerName:="НЕ_МОЙ_КОМП",
Connected:=True.
Все ОК. (сервер поднимается).
Компилирую. Запускаю. Ничего не происходит. Даже в списке процессов процесса такого нет. А на сервере server.exe поднимается,
но подключения к RemoteDataModule не происходит!!!
Ставлю Connected:=False и пытаюсь подключиться программно: ошибка
"Интерфейс не поддерживается". В дебаггере - тоже самое.

Прописываю ComputerName:="МОЙ_КОМП", запускаю клиента с "НЕ_МОЙ_КОМП" - ВСЕ ОК! Иду на 3-тий комп - тоже все ОК.
(все нормально подключается, сервер поднимается)

"МОЙ_КОМП" - W2K PRO
"НЕ_МОЙ_КОМП" - W2K PRO
3-тий комп - W2K SERVER

Romkin, на тебя все надежда. Заранее СПАСИБО!


Romkin   (2001-12-27 13:45:00) [3]

Ну невозможна ситуация, когда процесс работает на одной машине, а dll, к нему подключенная - на другой. К тому же, при удаленном доступе делается marshalling, через IDispatch или собственный прокси, а в DLL можно подключаться через IUnknown
Возможно, DCOM подгрузит, если указать, что сервер должен выполняться на стороне клиента... проволочет на машину и там подгрузит, но вряд ли. Но это так же, как и просто на машине - с настройкой возится не надо.


Slava   (2001-12-27 13:38:00) [4]

ОК. Разрегистрировались.
Спасибо!

P.S. Но про DLL все равно непонятно...


Romkin   (2001-12-27 13:23:00) [5]

Потому что DLL грузится в адресное пространство процесса, а он на другой машине...
разрегистрация для Delphi Server.exe /unregserver, если не ошибаюсь


Slava   (2001-12-27 13:08:00) [6]

> Romkin

Почему? Где написано?
Почему тогда из dcomcnfg его видно?

А если это так, то другой вопрос:
Как можно exe разрегить?

А то мусор в реестре копится...


Romkin   (2001-12-27 12:59:00) [7]

DLL на другой станции никогда не подключишь - должна находится на том же компе, что и клиент


Slava   (2001-12-27 12:58:00) [8]

Не получилось удаленно...

По-моему уже кто-то здесь вопрос этот задавал.

Если подкючаться через TSocketConnection, то все пучком, а если через TDCOMConnection, то "Класс не зарегистрирован."

Кто знает почему?


Slava   (2001-12-27 12:43:00) [9]

Мда..а

Все дело оказалось в винде (как всегда :))
Что-то там сломалось.
Перезагрузил и все ОК.

Спасибо.

P.S. Сейчас попробую удаленно...


Romkin   (2001-12-27 12:22:00) [10]

Если все нормально написано - все соединится. При регистрации через regsvr32 регистрируется все Factory, у которых не Internal.
Советую попробовать зарегистрировать через TRegSvr (Delphi/bin)


Slava   (2001-12-27 12:09:00) [11]

Вопрос открыт...


Slava   (2001-12-27 10:52:00) [12]

А что там надо посмотреть?

Сама DLL регистрируется: regsvr32 my.dll. Здесь все нормально.
А вот Remote Data Module,который в ней - нет.


GreySerg   (2001-12-27 10:45:00) [13]

посмотри DLLRegisterServer


Наверх

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