![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DCOM. Interface not supported. [D7, WinXP]
Артем Кудлаенко © (2005-09-11 20:55:00)В результате вызова функции CreateRemoteComObject(MachineName, CLASS_Calc )возникает ошибка "Interface not supported."
Если кто-то сталкивался подскажите, plz, в чем дело и что я мог упустить.
Набережных С. (2005-09-24 19:57:00) [1]
> локально я зарегестрировал сервер с помошью regsvr32
То бишь речь идет об ин-процесс сервере. Для удаленной работы с ним потребуется суррогатный процесс. При регистрации в ключе AppID нужно создать пустой подключь с именем DllSurrogate, чтобы использовать для этой либы в качестве суррогата процесс, предоставляемый системой. Подробнее ищи в MSDN по теме "surrogate process".
Кроме того, все интерфейсы, которые предполагается использовать(не классы!!) д.б. либо Automation-совместимые, либо иметь зарегистрированные прокси/стаб. Подробнее - в MSDN.
Артем Кудлаенко (2005-09-24 18:24:00) [2]Для работы локально я зарегестрировал сервер с помошью regsvr32.
Какие мне необходимо проделать операции на удаленной машине?
> ps. Почему в этом разделе, а не в "Corba и COM "?
Вышла ошибка с моей стороны.
Набережных С. (2005-09-24 15:17:00) [3]
> Когда не установлен интерфейс выдается сообщение "Класс
> не зарегистрирован".
Нет. Это выдается когда не найден именно класс. В данном случае скорее всего отсутствует маршалер для запрошенного интерфейса.
ps. Почему в этом разделе, а не в "Corba и COM "?
Артем Кудлаенко (2005-09-24 14:15:00) [4]В mIUnknown возвращается Pointer(...) as IInterface
isasa (2005-09-12 11:52:00) [5]Попробуй так,
var mIUnknown : IUnknown;
...........
mIUnknown:=CreateRemoteComObject(MachineName, CLASS_ImyIntf);
.......
myIntf:= mIUnknown as ImyIntf;
.......
Посмотри debugger-ом, что возвращается в mIUnknown
Артем Кудлаенко (2005-09-11 22:21:00) [6]1. Когда не установлен интерфейс выдается сообщение "Класс не зарегистрирован".
2. В dcomcnfg`е в закладке "Безопасность COM" дал всем права доступа и разрешения на запуск и активацию.
isasa (2005-09-11 21:10:00) [7]1.Не установлен интерфейс на MachineName.
2.Нет разрешения на запуск, доступ .... MachineName секьюрити (см. dcomcnfg)