在QSharedMemory中存储数据

时间:2016-07-17 19:11:00

标签: c++ qt qsharedmemory

我试图存储四个' double' vars和' int' var在共享内存中。

QSharedMemory::data()提供指向create(int size)预留的内存的指针。我的问题是:如何正确地将这些数据加入并深度复制到共享内存中,以便我可以访问其他程序中的任何元素进行读/写?

我看到的唯一类似的事情是将值放在QString中。这是正确的方法吗?

感谢。

1 个答案:

答案 0 :(得分:3)

这些方面的东西:

struct SharedData {
  double fourDoubles[4];
  int andAnInt;
};

QSharedMemory shared_mem;
shared_mem.create(sizeof(SharedData));
SharedData* p = static_cast<SharedData*>(shared_mem.data());
p->fourDoubles[0] = 1.0;
p->andAnInt = 42;