Форум: "Основная";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];
ВнизТорможу. Запросить интерфейс через TSocketConnection Найти похожие ветки
← →
Hose (2004-01-19 15:00) [0]Есть сервер приложения. К нему доступ через TSocketConnection.
На сервере в одном коклассе объявляю 2 интерфейса. Типа такого
IIntf1: IAppServer;
IIntf2: IDispatch;
как у Intf1 запросить Intf2? Надо переопределять QueryInterface?
В общем посоветуйте плз.
← →
Erik (2004-01-19 15:35) [1]Лучше незапрашивать, а то проблем необерешся. Кидай все методы в IAppServer.
← →
Dimka Maslov (2004-01-19 15:41) [2]А как вообще ты хочешь через сокеты передавать указатель? Куда он будет указывать адресном пространстве клиента на удалённой машине. А посоветовать можно лишт прочитать про COM+
← →
Hose (2004-01-19 15:56) [3]2 Dimka Maslov ©
А куда указывает в адресном пространстве клиента указатель на наследника IAppServer?
← →
Dimka Maslov (2004-01-19 16:04) [4]Прочитай ещё и про COM есть такие понятия как Proxy и Stub
← →
icWasya (2004-01-19 16:09) [5]Надо переопределять QueryInterface?
если на сервере всё сделано правильно, то не надо
var
IIntf1: IAppServer;
IIntf2: IDispatch;
IIntf2:=CreateComObject(CLASS_Server);
IIntf1 := IIntf2 as IAppServer;
← →
Hose (2004-01-19 16:15) [6]2 Dimka Maslov ©
Странно. Вот и я про них подумал. :)) Не разу не приходилось писать ручками маршалинг. Т.е. надо писать маршалинг?
2 icWasya ©
К чему это все? Оба интерфейса реализуются одним коклассом.
← →
Digitman (2004-01-19 16:15) [7]IMyInterface = interface(IAppServer);
var
IIntf2: IMyInterface;
IIntf2 := socketconnection.GetServer as IMyInterface;
← →
Hose (2004-01-19 16:20) [8]2 Digitman ©
нет не так
TMyClass = class(TMtsDataModule, IIntf1, IIntf2)
← →
Digitman (2004-01-19 16:34) [9]
> Hose (19.01.04 16:20) [8]
зачем ?
если требуется только IAppServer, то он по дифолту и будет получен вызовом GetServer
если же требуется наследник IMyInterface, то будет неявно вызван QueryInterface()
← →
Hose (2004-01-19 16:47) [10]> Digitman © (19.01.04 16:34) [9]
> зачем ?
Странный вопрос. Вам не кажется? Условия задачи такие.
← →
Digitman (2004-01-19 16:56) [11]
> Hose (19.01.04 16:47) [10]
> Странный вопрос. Вам не кажется?
ничего странного. не кажется
цитирую :
> как у Intf1 запросить Intf2? [*]
достаточно не усложнять себе жизнь, а наследовать Intf2 от Intf1 - и условия [*] выполняются до безобразия элементарно, см. [7] ... не так ли ?
← →
Hose (2004-01-19 17:15) [12]> цитирую :
> как у Intf1 запросить Intf2? [*]
не надо при цитировании вырывать из контекста вопроса отдельные фразы.
> достаточно не усложнять себе жизнь, а наследовать Intf2 от
> Intf1 - и условия [*] выполняются до безобразия элементарно,
> см. [7] ... не так ли ?
нет. не так. принципиально Intf1 и Intf2 содержат совершенно различные наборы методов. при чем здесь наследование?
← →
Digitman (2004-01-19 17:40) [13]
> Hose (19.01.04 17:15) [12]
> не надо
тогда, будь любезен, объясни автору, чем ему грозит решение такой задачи ИМЕННО в такой постановке БЕЗ переделки TSocketConnection, BSS и общих для них модулей, начиная с маршаллера ... а я, с твоего позволения, понаблюдаю
← →
Hose (2004-01-19 18:03) [14]Digitman © (19.01.04 17:40) [13]
> тогда, будь любезен, объясни автору, чем ему грозит решение
> такой задачи ИМЕННО в такой постановке БЕЗ переделки TSocketConnection,
> BSS и общих для них модулей, начиная с маршаллера ... а
> я, с твоего позволения, понаблюдаю
автору чего я должен что-то объяснять?
если внимательно почитать тред, то не трудно заметить, что я автором вопроса и являюсь. вопрос сформулирован довольно ясно. по ходу я добавил еще кое-какие уточнения.
если Вы не знаете ответа на вопрос, то зачем устраивать здесь флейм. если знаете - то достаточно просто ответить или ссылочку кинуть.
← →
Digitman (2004-01-19 18:13) [15]
> Hose (19.01.04 18:03) [14]
тебе Маслов Димка уже сказал - без переделки штатного маршаллинга, заложенного в связке TSocketconnection - BSS , не обойтись для решения задачи в ориг.постановке
← →
Hose (2004-01-19 18:31) [16]Digitman © (19.01.04 18:13) [15]
> тебе Маслов Димка уже сказал - без переделки штатного маршаллинга,
> заложенного в связке TSocketconnection - BSS , не обойтись
> для решения задачи в ориг.постановке
Я к вам все время обращаюсь на "вы". Меня так родители с детства учили. И уж тем более вот эдакие распальцовки тебя не делают более крутым программистом.
Спасибо всем ответившим по существу. Вопрос закрыт.
← →
Digitman (2004-01-19 18:35) [17]
> Hose (19.01.04 18:31) [16]
> тебя не делают более крутым программистом
у меня что - прямо таки на лбу написано "крутой программист" ?)))))))))))))))))))))))))))
← →
Digitman (2004-01-19 18:39) [18]
> Hose (19.01.04 16:20)
ссылки - станд.модуль SConnect.pas (и все от чего онт пляшет), книга Эрика Хармона по программированию c использованием COM-технологии под Win32 ... если интересно, могу дать детальные атрибуты книги ... книга замечательная !!
← →
Dred2k (2004-01-19 21:49) [19]Только одно не ясно - причем здесь транспорт и собственно COM.
(на крайний случай: source\vcl\ScktSrvr.dpr и SConnect.pas там же - что еще нужно?)
P.S. Сорри, коль не прочитал всю ветку.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.01 c