我是 Qt 的新手,我想使用 QSharedMemory 作为在运行时将一些应用程序连接在一起的工具。我已经检查了 QSharedMemory 示例并提取了我需要使用它的所有内容。
这里的问题是 QSharedMemory 实例无法分配内存。当我调用create()
它时返回 false,当我打印存储在 中的错误消息时errorString()
,它显示以下错误:
QSharedMemory::create: unable to make key
我的一段代码与此类似:
QSharedMemory sharedmemory;
if(sharedmemory.isAttached())
sharedmemory.detach();
QString st = "this is the shared data";
QBuffer buffer;
buffer.open(QBuffer::ReadWrite);
QDataStream out(&buffer);
out << st;
int size = buffer.size();
if(!sharedmemory.create(size))
{
std::cout<<sharedmemory.errorString().toStdString()<<std::endl;
return 1;
}
无论我对该方法给出什么size
,create()
它都不会分配内存。
任何想法都适用。谢谢马赫迪