Создаю сервер в виде dll, при вызове его методов клиентом локально (CLSCTX_INPROC_SERVER) всё нормально, а при удалённом вызове(CLSCTX_REMOTE_SERVER) выдаёт ошибку "Класс не зарегистрирован".
Здравствуйте local, Вы писали:
L>Создаю сервер в виде dll, при вызове его методов клиентом локально (CLSCTX_INPROC_SERVER) всё нормально, а при удалённом вызове(CLSCTX_REMOTE_SERVER) выдаёт ошибку "Класс не зарегистрирован".
L>В чём может быть причина?
Пиши код в соответствии с oleautomation или компилируй и регистрируй прокси/стаб.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте IT, Вы писали:
IT>Здравствуйте local, Вы писали:
L>>В чём может быть причина?
IT>А как он зарегистрирован на удавённой машине? Просто как dll или ты его запихнул в COM+?
Зарегистрирован просто как dll. Запускал и клиент и сервер пока только на одной и той же машине.
Здравствуйте local, Вы писали:
L>Зарегистрирован просто как dll. Запускал и клиент и сервер пока только на одной и той же машине.
Ну так он работать и не должен. dll'ка должна работать в адресном пространстве какого-нибудь процесса, этим процессом может быть либо твоё приложение (и этот вариант у тебя работает), либо какое-то другое приложение. Выходы два: сделать не dll, а exe; запускать твою dll из под COM++, который в этом случае и будет каким-то другим приложением.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте local, Вы писали:
IT>>А как он зарегистрирован на удавённой машине? Просто как dll или ты его запихнул в COM+?
L>Зарегистрирован просто как dll. Запускал и клиент и сервер пока только на одной и той же машине.
Хм... Как dll могут регистрироваться только Inproc-сервера. А ты пытаешься запустить Local или Remote-сервер. Делай в EXE и регистрируй как положено...