|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.01.2016, 12:59 | #1 |
Пользователь
Регистрация: 26.02.2013
Сообщений: 66
|
Может ли объект жить в памяти отдельно?
Представьте себе жизненный цикл экземпляра класса объекта:
создание (инициализация), вызовы методов, присваивание значений полям, и так, пока не наступит Destroy. Можно ли обращаться к этому экземпляру из разных других процессов? Если поместить описание класса в dll, то эти разные процессы будут для себя создавать разные экземпляры. Если объявить переменную типа этого класса в программе, текущие значения будут жить, пока прогу не закроют, но как извне обращаться к его методам? Существует ли технология обособленных объектов? |
11.01.2016, 13:16 | #2 |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
DСОМ, COM ...
|
11.01.2016, 13:17 | #3 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,442
|
Цитата:
API скайпа (COM), он один, а программ, обращающихся к нему через API - много. |
|
21.01.2016, 11:58 | #4 |
Пользователь
Регистрация: 26.02.2013
Сообщений: 66
|
А имеется ли что-то подобное в Lazarus?
Может это TSimpleIPCServer? Если да, то где бы инструкцию про него найти? |
21.01.2016, 12:40 | #5 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,442
|
IPC - способ обмена данными между процессами. Это не то что вам надо.
Цитата:
Только в windows можно создать некий интерфейс, зарегистрировать в системе, и только тогда его смогут использовать другие приложения. Если не винда, то только интерфейсы в чистом виде (нет автомат. счетчика ссылок) + обращение возможно максимум из подключаемых к процессу библиотек. |
|
22.01.2016, 00:37 | #6 | |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,859
|
Цитата:
|
|
22.01.2016, 06:25 | #7 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 18,136
|
Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
|
25.01.2016, 13:04 | #8 | |
Пользователь
Регистрация: 26.02.2013
Сообщений: 66
|
Цитата:
Так когда один процесс обратится к другому через СОМ-интерфейс, он разве не данные от него в итоге получит? Можно же в одном процессе вызвать функцию, которое передаст текущее значение поля объекта из другого процесса? |
|
25.01.2016, 14:03 | #9 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,442
|
Цитата:
проблема только в том, что программа-ядро должно дать актуальную версию интерфейса подключения, или же поддерживать все предыдущие, где одна из них известна программе-клиенту. Опять же, мы говорим об обмене данными. Для использования рабочего экземпляра класса в другой области памяти (характерно DLL), можно использовать только COM (на сколько я знаю), т.е. программа-ядро реализует и предоставляет некий IManager, а программы-клиенты реализующие IPlugin и получающие при инициализации IManager, могут с ним работать. А вот для использования той же области памяти (класс, переменная) другим процессом тут уже не знаю, скорее всего OLE-что-то из этой области. Вон, MSWork к примеру. Хочешь, новый запусти. НЕ хочешь, подключись к существующему, если можешь... Последний раз редактировалось Человек_Борща; 25.01.2016 в 14:09. |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работать, чтобы жить, или жить, чтобы работать? | Arigato | Свободное общение | 33 | 27.06.2015 13:39 |
Объект String в памяти | 9esa | Общие вопросы C/C++ | 19 | 25.04.2012 02:37 |
выделение памяти под объект | VIK_aka_TOR | Общие вопросы Delphi | 4 | 15.02.2012 19:20 |
Если Вам скажут, что Вам жить 2 года, как вы будете жить? | grenles | Свободное общение | 51 | 15.11.2010 21:59 |
Числа отдельно, хлам отдельно | Keetotko | Общие вопросы C/C++ | 6 | 18.10.2010 18:15 |