exe1
и exe2
статически связаны с test.dll
.
//test.dll
MyComplexObject obj;
void func()
{
//initialize obj
}
void update()
{
//update obj
}
// other functions that use obj
//exe1
func();
//exe2
update();
Проблема в том, что exe2
будет иметь отдельную копию obj
, поэтому update()
фактически не будет обновлять obj
, инициализированный exe1
. Я хочу сохранить часть обновления в testdll
сама и не хочу экспортировать obj
.
Примечание: exe1
- это служба Windows, которая будет продолжать работать, а exe2
- это отдельное приложение, которое может запускаться и закрываться несколько раз.
Можно ли обновить obj
с exe2
?
РЕДАКТИРОВАТЬ: я узнал, что использование data_seg
больше не поддерживается в Windows, поэтому нет возможности обмениваться данными между сеансами.
Моя проблема сводится к разделению переменной в dll между различными экземплярами dll (загруженными exe). Является ли межпроцессное взаимодействие, такое как boost.interprocess, только надежным способом или есть что-то подобное и что-то, что не включает boost
?