Size: a a a

2020 August 03

ПК

Побитый Кирпич... in supapro.cxx
Alexander Eremin
подскажите как можно реализовать. Есть одна программа, к ней подключает динамическая библиотека. Эта динамическая библиотека сохраняет данные в разделяемой памяти. Есть другая программа к которой подключается таже самая динамическая библиотека.Вторая программа считывает данные из разделяемой памяти. Необходима чтобы вторая программа как то автоматически получала данные, вызвав функцию считывания данных из динамической библиотеки только один раз. Как это реализовать?
Что значит автоматически?
источник

AE

Alexander Eremin in supapro.cxx
Побитый Кирпич
Что значит автоматически?
Реализовать что то типо паттерна наблюдателя, но находящийся в динамической библиотеке
источник

AE

Alexander Eremin in supapro.cxx
Aidar Fattakhov
А это не вы писали циклический буффер в разделяемой памяти?
Нет)
источник

ПК

Побитый Кирпич... in supapro.cxx
Alexander Eremin
Реализовать что то типо паттерна наблюдателя, но находящийся в динамической библиотеке
Так и в чём проблема?
источник

AF

Aidar Fattakhov in supapro.cxx
Может быть всё-таки пайпы?
источник

AE

Alexander Eremin in supapro.cxx
проблема в том что библиотека не может хранить объекты, которые подписаны на обновление
источник

ПК

Побитый Кирпич... in supapro.cxx
Alexander Eremin
проблема в том что библиотека не может хранить объекты, которые подписаны на обновление
Почему не может?
источник

AE

Alexander Eremin in supapro.cxx
Побитый Кирпич
Почему не может?
предположим мы отправляем данные с первой программы, подключаем библиотеку,  сохранили их в разделяемой памяти, записались в издатели. Другая программа обратилась к этой библиотеке, считала эти данные, записалась в подписчики. Далее отправили опять данные, а как вычислить этого подписчика не понимаю
источник

DB

Dimmu Borgir in supapro.cxx
Vlad Serebrennikov
теоретически из такого можно попробовать выйти сухим из воды (p0593), но строка, а следовательно и твой тип, который ее содержит, не является тривиальным типом
Да там у меня все в бинарном виде хранится
источник

VS

Vlad Serebrennikov in supapro.cxx
не очень понятно, что из этого следует
источник

DB

Dimmu Borgir in supapro.cxx
а вообще как по норм пересобирать его обратно?
источник

VS

Vlad Serebrennikov in supapro.cxx
под строкой я имел в виду std::string, которые находятся внутри объектов Administrator
источник

VS

Vlad Serebrennikov in supapro.cxx
написать для Administrator operator>> и operator<<, и через них из потока читать объекты (и записывать в поток соответственно)
источник

AF

Aidar Fattakhov in supapro.cxx
Alexander Eremin
предположим мы отправляем данные с первой программы, подключаем библиотеку,  сохранили их в разделяемой памяти, записались в издатели. Другая программа обратилась к этой библиотеке, считала эти данные, записалась в подписчики. Далее отправили опять данные, а как вычислить этого подписчика не понимаю
что значит вычислить?
источник

J

Jefferson in supapro.cxx
Всем привет, подскажите, ловлю предупреждение: "C26451 Арифметическое переполнение: использование оператора "-" на байтовом значении 4 и приведение результата к байтовому значению 8. Приведите значение к более широкому типу перед вызовом оператора "-", чтобы избежать переполнения"
Код: unsigned long num4 = num3 + (unsigned long)((long)endIdx2 - (long)num3 + 1L);
Я правильно понимаю, что вместно long нужно в unsigned long кастануть?
источник

AK

Anton Kviatkovskii in supapro.cxx
Jefferson
Всем привет, подскажите, ловлю предупреждение: "C26451 Арифметическое переполнение: использование оператора "-" на байтовом значении 4 и приведение результата к байтовому значению 8. Приведите значение к более широкому типу перед вызовом оператора "-", чтобы избежать переполнения"
Код: unsigned long num4 = num3 + (unsigned long)((long)endIdx2 - (long)num3 + 1L);
Я правильно понимаю, что вместно long нужно в unsigned long кастануть?
Вообще не ясно зачем тут касты нужны
источник

AE

Alexander Eremin in supapro.cxx
Aidar Fattakhov
что значит вычислить?
ну в смысле найти этого подписчика и обратиться к нему. Я там даже издателя записывал через синглтон, чтобы данные не удалялись при обращении к библиотеке
источник

J

Jefferson in supapro.cxx
Anton Kviatkovskii
Вообще не ясно зачем тут касты нужны
endIdx2 - int

num3 - unsigned long long
источник

AF

Aidar Fattakhov in supapro.cxx
Alexander Eremin
ну в смысле найти этого подписчика и обратиться к нему. Я там даже издателя записывал через синглтон, чтобы данные не удалялись при обращении к библиотеке
А зачем обратиться?
источник

AK

Anton Kviatkovskii in supapro.cxx
Jefferson
endIdx2 - int

num3 - unsigned long long
unsigned long long num4 = endIdx2 + 1;
источник