![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как передать класс между приложениями ? [D7, WinXP]
Альф © (2006-07-13 10:30:00)Есть приложение-сервис с каким-то набором классов о состоянии этого сервиса, и есть приложение-просмотрщик - каждая форма которого умеет отображать конкретный класс.
Как организовать передачу классов состояния между сервисом и просмотрщиком ?
Пока вижу два способа - WM_COPYDATA или MMF - но оба требут сохранения свойст в промежуточный буффер.
Можно ли каким-то образом просто передать ссылку на класс, которая была-бы валидной в обеих приложениях ?
StriderMan (2006-07-13 14:17:00) [1]Пардон... что-то я невнимательно прочитал. между приложениями такой механизм работать не будет
Ketmar (2006-07-13 14:08:00) [2]читаем [0]. думам, к чему написали столько текста не по теме.
StriderMan (2006-07-13 14:01:00) [3]все просто. делаешь bpl-ку с классом, который должен быть доступен всем, и переменной экземпляра класса. а в проектах EXE и DLL ставишь флажок "Project\options\Packages\build with run-time packages", и указываешь там имя bpl-ки
Альф (2006-07-13 13:57:00) [4]>StriderMan © (13.07.06 13:55) [7]
>запихнуть этот класс в bpl-ку
Если чесно я тоже мысль не до конца понимаю...
Альф (2006-07-13 13:55:00) [5]>Юрий Зотов © (13.07.06 12:22) [5]
>Непонятно, что такое "класс состояния".
Класс состояния - это общее название для нескольких классов или коллекций класов, которые описывают то что у сервиса "внутрях" в данный момент.
>если так уж нужно обойтись без передаточного буфера
Дело совсем не в буффере, просто хотелось избежать Save/Load для каждого класса - потому как классов может быть несколько и для каждого писать свои процедуры сохранения не хочется. К тому же для множества классов придеться писать подобие протокола передачи.
Наверно интерфейсы - наиболее подходящий вариант.
StriderMan (2006-07-13 13:55:00) [6]
> Игорь Шевченко © (13.07.06 12:19) [4]
запихнуть этот класс в bpl-ку, и использовать ее в exe и dll. Экземпляр класса будет один.
Юрий Зотов (2006-07-13 12:22:00) [7]Непонятно, что такое "класс состояния".
ИМХО, если так уж нужно обойтись без передаточного буфера, то стоит подумать о способе взаимодействия через интерфейсы.
Игорь Шевченко (2006-07-13 12:19:00) [8]StriderMan © (13.07.06 12:17) [3]
Каким образом ?
StriderMan (2006-07-13 12:17:00) [9]а можно ран-тайм package использовать
DrPass (2006-07-13 10:34:00) [10]Может, речь идет просто о создании СОМ-сервера?
Игорь Шевченко (2006-07-13 10:31:00) [11]
> Как организовать передачу классов состояния между сервисом
> и просмотрщиком ?
Почитать про маршаллинг.
> Можно ли каким-то образом просто передать ссылку на класс
Нельзя. Но можно записать все свойства класса в поток (Stream), передать этот поток, и в другом приложении создать класс, считав значения свойств из переданного потока.