Получение offset_ptr объекта в разделяемой памяти - PullRequest
2 голосов
/ 11 октября 2010

Как я могу получить доступ к offset_ptr объекта, который создан в общей памяти?

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

Я хочу получить доступ к offset_ptr для объекта Line ..

1 Ответ

1 голос
/ 15 января 2011

Во-первых, вам нужно объявить указатель смещения с вашим типом линии:

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

Во-вторых, вы назначаете его:

offset_p = line;

Теперь смещение offset_p содержит смещение от линиидля себя, так что вы можете получить указатель на строку и использовать его в любом процессе, подобном этому:

draw_line( offset_p.get() );
...