第一次 打开程序的时候 我们创建了一个共享内存 大小为1
第二次 打开程序的时候 我们检测到attach到共享内存 被占有 即程序已经打开过了
#include "QSharedMemoryTest.h"
#include <QtWidgets/QApplication>
#include <QMessageBox>
#include <QSharedMemory>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QSharedMemory sharedMemory("sharedMemory");
//共享内存被占用
if (sharedMemory.attach())
{
QMessageBox::warning(nullptr, QStringLiteral("警告"), QStringLiteral("已经有一个实例在运行了"));
return -1;
}
//程序不存在 创建一个大小为1的 共享内存段
sharedMemory.create(1);
QSharedMemoryTest w;
w.show();
return a.exec();
}
参考链接:
https://blog.csdn.net/qq_36170958/article/details/111300170