QSharedMemory实现应用程序的单例运行

本文介绍如何在Qt环境下使用QSharedMemory创建应用程序的单例模式,确保程序只有一个实例正在运行。通过在main.cpp中利用QSharedMemory检查并创建进程间的内存共享对象,实现防止多个实例启动的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面在Qt程序的main.cpp中进行操作:


<span style="font-family:Microsoft YaHei;font-size:18px;">int main(int argc, char *argv[])
{
       QApplication app(argc, argv);

       int nFlag = -1;

       QSharedMemory *g_pShareMem = new QSharedMemory(QString("centralMoniSystem"));//这里也可以调用setKey(const QString& key),key的值可自定义

       int nIndex = 2;

        while (nIndex--)
        {
              if (g_pShareMem->attach(QSharedMemory::ReadOnly)) //attach(AccessMode mode = ReadWrite)  默认为可读写           
              {
                  g_pShareMem->detach();
              }
        }

        if (g_pShareMem->create(1))  
        {
              ......
              //执行显示主界面前的操作,如加载管理器或者qss文件等

              ......

              //显示主界面
              MainWindow dlg;
              dlg.show();

          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值