获取共享内存中对象的offset_ptr

时间:2010-10-11 14:50:22

标签: boost shared-memory

如何访问共享内存中创建的对象的offset_ptr?

segment = new managed_shared_memory(create_only, "MySharedMemory", segmentSize);  
line = segment->construct<Line>("Line1")("line");

我想访问Line对象的offset_ptr ..

1 个答案:

答案 0 :(得分:1)

首先,您需要使用Line类型声明偏移指针:

boost::interprocess::offset_ptr<Line> offset_p;

其次,你分配它:

offset_p = line;

现在,offset_p保存了从行到自身的偏移量,因此您可以获得指向的指针,并在任何过程中使用它:

draw_line( offset_p.get() );