Текущий архив: 2006.08.27;
Скачать: 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 вся ветка
Текущий архив: 2006.08.27;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.033 c