У меня есть простая структура:
struct MyType
{
std::string name;
std::string description;
}
и я помещаю его в общую память:
managed_shared_memory sharedMemory(open_or_create, "name", 65535);
MyType* pType = sharedMemory.construct<MyType>("myType")();
// ... setting pType members ...
Если два приложения, взаимодействующие с общей памятью, созданы с использованием разных версий Visual Studio (разные версии реализации stl), следует ли помещать собственные типы в общую память (например, char *) вместо типов stl?
Изменить :
я пробовал с
typedef boost::interprocess::basic_string<char> shared_string;
и это работает!