QT-单例程序

来源:互联网 发布:手机网络打印机服务 编辑:程序博客网 时间:2024/05/16 17:55
在main函数中加入如下代码:

    QSystemSemaphore sema("CLGObject", 1, QSystemSemaphore::Open);    sema.acquire();// 在临界区操作共享内存          QSharedMemory mem("CLGSystemObjcet");// 全局对象名    if (!mem.create(1))// 如果全局对象已存在则退出    {        sema.release();// 如果是 Unix 系统,会自动释放。        return 0;    }    QApplication application(argc, argv);    ClgWin win;    win.show();        sema.release();// 释放临界区    return application.exec(); 



使用共享内存和全局信号量机制来实现。