Вниз
Скачать: CL | DM;

Как передать класс между приложениями ?   Найти похожие ветки 

← →
Альф   (2006-07-13 10:30) [0]

Есть приложение-сервис с каким-то набором классов о состоянии этого сервиса, и есть приложение-просмотрщик - каждая форма которого умеет отображать конкретный класс.
Как организовать передачу классов состояния между сервисом и просмотрщиком ?
Пока вижу два способа - WM_COPYDATA или MMF - но оба требут сохранения свойст в промежуточный буффер.
Можно ли каким-то образом просто передать ссылку на класс, которая была-бы валидной в обеих приложениях ?


← →
Игорь Шевченко ©   (2006-07-13 10:31) [1]


> Как организовать передачу классов состояния между сервисом
> и просмотрщиком ?


Почитать про маршаллинг.


> Можно ли каким-то образом просто передать ссылку на класс


Нельзя. Но можно записать все свойства класса в поток (Stream), передать этот поток, и в другом приложении создать класс, считав значения свойств из переданного потока.


← →
DrPass ©   (2006-07-13 10:34) [2]

Может, речь идет просто о создании СОМ-сервера?


← →
StriderMan ©   (2006-07-13 12:17) [3]

а можно ран-тайм package использовать


← →
Игорь Шевченко ©   (2006-07-13 12:19) [4]

StriderMan ©   (13.07.06 12:17) [3]

Каким образом ?


← →
Юрий Зотов ©   (2006-07-13 12:22) [5]

Непонятно, что такое "класс состояния".

ИМХО, если так уж нужно обойтись без передаточного буфера, то стоит подумать о способе взаимодействия через интерфейсы.


← →
Альф   (2006-07-13 13:55) [6]

>Юрий Зотов ©   (13.07.06 12:22) [5]
>Непонятно, что такое "класс состояния".

Класс состояния - это общее название для нескольких классов или коллекций класов, которые описывают то что у сервиса "внутрях" в данный момент.

>если так уж нужно обойтись без передаточного буфера

Дело совсем не в буффере, просто хотелось избежать Save/Load для каждого класса - потому как классов может быть несколько и для каждого писать свои процедуры сохранения не хочется. К тому же для множества классов придеться писать подобие протокола передачи.

Наверно интерфейсы - наиболее подходящий вариант.


← →
StriderMan ©   (2006-07-13 13:55) [7]


> Игорь Шевченко ©   (13.07.06 12:19) [4]

запихнуть этот класс в bpl-ку, и использовать ее в exe и  dll. Экземпляр класса будет один.


← →
Альф   (2006-07-13 13:57) [8]

>StriderMan ©   (13.07.06 13:55) [7]
>запихнуть этот класс в bpl-ку

Если чесно я тоже мысль не до конца понимаю...


← →
StriderMan ©   (2006-07-13 14:01) [9]

все просто. делаешь bpl-ку с классом, который должен быть доступен всем, и переменной экземпляра класса. а в проектах EXE и DLL ставишь флажок "Project\options\Packages\build with run-time packages", и указываешь там имя bpl-ки


← →
Ketmar ©   (2006-07-13 14:08) [10]

читаем [0]. думам, к чему написали столько текста не по теме.


← →
StriderMan ©   (2006-07-13 14:17) [11]

Пардон... что-то я невнимательно прочитал. между приложениями такой механизм работать не будет



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.027 c
5-1138377574
Змей
2006-01-27 18:59
2006.08.27
установка компоненты DelphiX


15-1154011493
Vlad
2006-07-27 18:44
2006.08.27
Майкрософт шалит? :-)


15-1154329986
Nic
2006-07-31 11:13
2006.08.27
Архитектура приложений


15-1154063502
bau009
2006-07-28 09:11
2006.08.27
Borland Developer Studio 2006 - различие продуктов


2-1154376390
Lexmark
2006-08-01 00:06
2006.08.27
Запуск программы на чужом компьютере




   Наверх