我有一个简单的结构:
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;
它有效!