Vector 将向量写入共享内存

Vector 将向量写入共享内存,vector,stl,ipc,shared-memory,Vector,Stl,Ipc,Shared Memory,我不熟悉STL容器,据我所见,将向量写入共享内存并从中读取似乎有点麻烦 由于某些原因,像Boost:InterProcess这样的库不是一个选项。所以我需要自己为一个复杂类型的向量编写共享内存和分配器,但不确定如何继续 如果有人能给我一个示例,或者一个链接,让我可以看到代码示例或解释,我将不胜感激。谢谢 编辑 我有一个向量定义为 vector <SERVER_INFO_TYPE *> m_serverVecotr vector m_服务器vector >代码> ServyIn

我不熟悉STL容器,据我所见,将向量写入共享内存并从中读取似乎有点麻烦

由于某些原因,像
Boost:InterProcess
这样的库不是一个选项。所以我需要自己为一个复杂类型的向量编写共享内存和分配器,但不确定如何继续

如果有人能给我一个示例,或者一个链接,让我可以看到代码示例或解释,我将不胜感激。谢谢

编辑 我有一个向量定义为

vector <SERVER_INFO_TYPE *> m_serverVecotr
vector m_服务器vector

<> >代码> ServyIn FoFype类型< /C> >本身是<代码>结构<代码>包含<代码> cScord< /Calp>等.< /P>如果您有能力,我强烈建议使用MS的C++多线程支持。他们已经从线程安全中消除了很多痛苦。就它们提供的vector类而言,您可以找到这一点,这里还有一个简单的示例:您有一个指针向量,指向的结构依次包含指向更多堆分配内存的指针。认识到将指针写入共享内存是毫无意义的(不是双关语):这些指针在共享内存的另一个进程的地址空间中是没有意义的。您必须将整个内容序列化为一个不包含指针的平面内存块(它可能包含自引用偏移量)。这意味着没有
CString
s或类似的内容。得到了关于进程间指针和地址空间冲突的部分。我想我也理解了关于序列化和内存块的部分。我们必须实施它。未获取自引用偏移部分。在这种情况下,我如何替换
CString
?请你再解释一下好吗?想象一下,你需要将所有数据保存到一个文件中,然后再将其读回。设计磁盘上的文件格式。然后使用相同的格式序列化到共享内存。啊,好的。明白了。谢谢。我会努力实现它。