Появилась проблема:
Пытаюсь удаленно подцепить ОРС-сервер — CoCreateInstanceEx и так далее.Сервер на удаленной запускается и возвращает IUnknown, но при попытке запросить интерфейс IOPCServer, т.е.тот нтерфейс, который полюбому у него есть, сервер клянется что такого интерфейса нет и не было. Причем независимо от того, как запрашивать или QueryInterface, или в самом CoCreateInstanceEx.
Помогите пожалуйста разобраться, почему так выходит.
Здравствуйте Леха, вы писали:
Л>Появилась проблема: Л>Пытаюсь удаленно подцепить ОРС-сервер — CoCreateInstanceEx и так далее.Сервер на удаленной запускается и возвращает IUnknown, но при попытке запросить интерфейс IOPCServer, т.е.тот нтерфейс, который полюбому у него есть, сервер клянется что такого интерфейса нет и не было. Причем независимо от того, как запрашивать или QueryInterface, или в самом CoCreateInstanceEx.
Л>Помогите пожалуйста разобраться, почему так выходит.
IOPCServer — это Ваш доморощенный интерфейс? Если да, то скорее всего этот интерфейс не совметим с oleautomation и при этом Вы не скомпилировали прокси/стаб.
Начет делается сервер (компилятор/библиотека)?
Какие ОС испльзуются для клиента и сервера?
Если это не W2k, то стаят ли апдэйты (SP для NT или DCOM9x для Win9x)?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте VladD2, вы писали:
VD>Здравствуйте Леха, вы писали:
Л>>Появилась проблема: Л>>Пытаюсь удаленно подцепить ОРС-сервер — CoCreateInstanceEx и так далее.Сервер на удаленной запускается и возвращает IUnknown, но при попытке запросить интерфейс IOPCServer, т.е.тот нтерфейс, который полюбому у него есть, сервер клянется что такого интерфейса нет и не было. Причем независимо от того, как запрашивать или QueryInterface, или в самом CoCreateInstanceEx.
Л>>Помогите пожалуйста разобраться, почему так выходит.
VD>IOPCServer — это Ваш доморощенный интерфейс? Если да, то скорее всего этот интерфейс не совметим с oleautomation и при этом Вы не скомпилировали прокси/стаб.
OPC (Ole for Process Control) — довольно жесткая спецификация COM-интерфейсов, предназначенная для обмена данными с разными железками. Поэтому никакие интейфейсы здесь доморощенными не могут быть. А сервер я использовал забугорного FactorySoft, который эту технологию давно и успешно продвигает, так что на счет корректности написания сервера я уверен на 100% (ну, если честно то на 99,9 :-)
VD>Начет делается сервер (компилятор/библиотека)?
Исходных кодов у меня небыло, но по кускам кода в документации и примерам можно предположить Visual C++ 5 или 6
VD>Какие ОС испльзуются для клиента и сервера? VD>Если это не W2k, то стаят ли апдэйты (SP для NT или DCOM9x для Win9x)?
Клиент — WinNT+SP5
сервер — и WinNT+SP5 и W2k побовал.
Огромное спасибо за внимание к моему вопросу. Это первый ответ после долгого моего мыканья по разным форумам
Здравствуйте Леха, вы писали:
VD>>Какие ОС испльзуются для клиента и сервера? VD>>Если это не W2k, то стаят ли апдэйты (SP для NT или DCOM9x для Win9x)? Л>Клиент — WinNT+SP5 Л>сервер — и WinNT+SP5 и W2k побовал.
1. (хотя в Вашем случае это только на всякий случай) Ставьте под NT SP6а. Причем именно а (по крайнй мере не ниже). Этот пак приблежает поддержку oleautomation в NT к уровню W2k (процентов на 80). Правда в этом случае скорее всего не поможет. У Вас, видимо, нет или не зарегистрирована proxy/stub-DLL. Точнее можно сказать только если взглянуть на описание интерфейса(ов).
Поглаядите может к этому серверу прилогается что-то подобное! Причем рагистрировать надо как на клиенте так и на сервере. Хотя не очень понятно, зачем тащить "COM-интерфейсы, предназначенная для обмена данными с разными железками" на другой компьютер.
Л>Огромное спасибо за внимание к моему вопросу. Это первый ответ после долгого моего мыканья по разным форумам
Да пока не зачто. :)
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте Леха, вы писали:
Л>Появилась проблема: Л>Пытаюсь удаленно подцепить ОРС-сервер — CoCreateInstanceEx и так далее.Сервер на удаленной запускается и возвращает IUnknown, но при попытке запросить интерфейс IOPCServer, т.е.тот нтерфейс, который полюбому у него есть, сервер клянется что такого интерфейса нет и не было. Причем независимо от того, как запрашивать или QueryInterface, или в самом CoCreateInstanceEx.
Л>Помогите пожалуйста разобраться, почему так выходит.
Когда-то сам столкнулся с такой проблемой, поставь в описании своего интерфейса атрибут oleautomation, и все будет ок, без всяких там proxy/stub!
Здравствуйте Capone, вы писали:
C>Когда-то сам столкнулся с такой проблемой, поставь в описании своего интерфейса атрибут oleautomation, и все будет ок, без всяких там proxy/stub!
Он же ясно сказал — "Исходных кодов у меня небыло...". Т.е. интерфейс не его.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте Леха, вы писали:
Л>Появилась проблема: Л>Пытаюсь удаленно подцепить ОРС-сервер — CoCreateInstanceEx и так далее.Сервер на удаленной запускается и возвращает IUnknown, но при попытке запросить интерфейс IOPCServer, т.е.тот нтерфейс, который полюбому у него есть, сервер клянется что такого интерфейса нет и не было. Причем независимо от того, как запрашивать или QueryInterface, или в самом CoCreateInstanceEx.
Л>Помогите пожалуйста разобраться, почему так выходит.
Здравствуйте Леха, вы писали:
Л>Появилась проблема: Л>Пытаюсь удаленно подцепить ОРС-сервер — CoCreateInstanceEx и так далее.Сервер на удаленной запускается и возвращает IUnknown, но при попытке запросить интерфейс IOPCServer, т.е.тот нтерфейс, который полюбому у него есть, сервер клянется что такого интерфейса нет и не было. Причем независимо от того, как запрашивать или QueryInterface, или в самом CoCreateInstanceEx.
Л>Помогите пожалуйста разобраться, почему так выходит.
Тогда наверное имеет смысл запустить OLE/COM-Viewer и посмотреть какие интерфейсы у этого сервера и есть ли они вообще!
Здравствуйте Capone, вы писали:
C>Здравствуйте Леха, вы писали:
Л>>Появилась проблема: Л>>Пытаюсь удаленно подцепить ОРС-сервер — CoCreateInstanceEx и так далее.Сервер на удаленной запускается и возвращает IUnknown, но при попытке запросить интерфейс IOPCServer, т.е.тот нтерфейс, который полюбому у него есть, сервер клянется что такого интерфейса нет и не было. Причем независимо от того, как запрашивать или QueryInterface, или в самом CoCreateInstanceEx.
Блин!!! Коллега!!!
Слово OPC навевает мне "приятные" воспоминания :)
FactorySoft сервер у меня прекрасно создавался
Я вижу две возможных проблемы
1. Не зарегистрирована proxy/stub DLL для OPC интерфейсов.
не помню как она называется но на www.opcfoundation.org должна быть.
2. Не правильно указаны параметры при вызове CcCreateInstanceEx
А локально он этот интерфейс достаёт?
Если да, то наверное действительно с proxy/stub беда. Хотя у меня с сименсовскими серверами такой беды не было никогда. Все сразу цепляет и вперед.
Здравствуйте Леха, вы писали:
Л>Появилась проблема: Л>Пытаюсь удаленно подцепить ОРС-сервер — CoCreateInstanceEx и так далее.Сервер на удаленной запускается и возвращает IUnknown, но при попытке запросить интерфейс IOPCServer, т.е.тот нтерфейс, который полюбому у него есть, сервер клянется что такого интерфейса нет и не было. Причем независимо от того, как запрашивать или QueryInterface, или в самом CoCreateInstanceEx.
Л>Помогите пожалуйста разобраться, почему так выходит.
Дорогой коллега, Вы уже разобрались с проблемой получения IOPCServer-интерфейса? Если нет, пишите
mmm@ru3.silvinit.ru