Текущий архив: 2002.06.17;
Скачать: CL | DM;
ВнизВызов интерфейса из DcomConnection Найти похожие ветки
← →
wed (2002-04-01 15:00) [0]Как, если это возможно, вызвать метод интерфейса при наличии подключения DCOMConnection
Спасибо.
← →
Digitman (2002-04-01 17:02) [1]var
MyAppServer: IMyAppServer;
...
MyAppServer:= IMyAppServer(IDispatch(DCOMConnection.AppServer));
MyAppServer.MyMethod;
← →
wed (2002-04-09 14:01) [2]При таком варианте выдает ACCESS Viol...
Соединение устанавливается при
dcomconnection1.GetServer.QueryInterface(IID_IMyAppServer,MyAppServer);
Почему для SocketConnection при любом варианте MyAppServer=nil
Для DCOM же всегда передается некоторый адрес
Возможен ли вызов через сокеты ???
Спасибо
← →
Digitman (2002-04-09 14:29) [3]приношу извинения
правильно будет так :
var
MyAppServer: IMyAppServerDisp;
...
MyAppServer:= IMyAppServerDisp(IDispatch(DCOMConnection.AppServer));
или
MyAppServer:= IDispatch(DCOMConnection.AppServer) as IMyAppServerDisp;
MyAppServer.MyMethod;
где
IMyAppServerDisp = dispinterface
.. декларация диспинтерфейса
end;
Сокеты (TSocketConnection) здесь ни при чем (хотя возможны наравне с DCOM : какой компонент выбрать - дело вкуса и особенности серверной стороны). Это лишь транспортный уровень для трансляции интерфейсных вызовов MIDAS
Все без исключения MIDAS-ориентированные компоненты базируются на TDispatchConnection, где, собственно говоря, и определены св-во AppServer и метод GetServer.
Главное отличие между AppServer и GetServer закл-ся в том, что AppServer (в "голом виде", без приведения типа) предназначен для использования позднего связывания (dual interface), а GetServer - раннего (v-table interface).
AppServer = Null (и, соответственно, GetServer = nil) только в одном случае - это случай, когда TXXXConnection.Active = False. Иными словами - коннект не установлен. При попытке установления коннекта AppServer/GetServer либо примут непустые значения либо произойдет исключение из за невозможности получить доступ к серверу (на том или ином этапе установления программно-логического соединения, этапов не менее чем два : установка соединения на уровне сетевого транспорта и установка соединения с загружаемым объектом, реализующим собственно интерфейсы IMyAppServer/IMyAppServerDisp)
Страницы: 1 вся ветка
Текущий архив: 2002.06.17;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.006 c