Qt应用的单实例运行

使一个Qt应用只有一个示例,在系统中运行

在实际的项目中遇到,刚开始以为实共享一块内存进行进程间通信。经过查找后发现是为了使一个应用单实例化,也就是在当前的系统环境中该应用程序同时只能运行一个。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
int main(int argc, char *argv[])
{

QApplication a(argc, argv);

burner b(argc, argv);
QSharedMemory *shareMem =new QSharedMemory(QString("一个标志字段"));
volatile short i = 2;
while (i--)
{
if (shareMem->attach(QSharedMemory::ReadOnly)) /* no need to lock, bcs it's read only */
{
shareMem->detach();
}
}

if (shareMem->create(1)) {
a.exec();
if (shareMem->isAttached())
shareMem->detach();
delete shareMem;
}

return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值