c++ - 在 QSharedMemory 中存储数据

标签 c++ qt qsharedmemory

我正在尝试在共享内存中存储四个“double”变量和一个“int”变量。

QSharedMemory::data() 提供了一个指向用 create(int size) 留出的内存的指针。我的问题是:我如何才能适本地将数据加入共享内存并将其深度复制到共享内存中,以便我可以在另一个程序上访问它的任何元素以进行读/写?

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

谢谢。

最佳答案

沿着这些线的东西:

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;

关于c++ - 在 QSharedMemory 中存储数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38424969/

相关文章:

c++ - Qt:单实例应用保护的最佳实践

c++ - lua_pcall 去哪儿了? (OSX Lion 上的 Lua 5.2.0)

c++ - 自定义分配器和内存对齐

C++ 从基类中的非虚函数调用纯虚函数

qt - 为什么 QShared Memory 创建大小和返回的大小()不同

c++ - 使用 QSharedMemory 附加现有的共享内存

c++ - int a[] = {1,2,};为什么允许在初始化列表中使用尾随逗号?

c++ - 获取 QPushButton 按下的背景颜色

c++ - Qdialog执行的返回值

css - 每个 QTableWidgetItem 的 QTableWidget 样式