Qt应用的单实例运行
来源:互联网 发布:python 元组转换字典 编辑:程序博客网 时间:2024/05/22 13:08
使一个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;
}
使一个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;
}
0 0
- Qt应用的单实例运行
- Qt实现应用单实例运行(3)-使用QTSingleApplication
- QT应用程序单实例运行
- QT应用程序单实例运行
- QT应用程序单实例运行
- QT应用程序单实例运行
- QT: 如何实现程序的单实例运行检测?
- Qt实现应用单实例运行(1)-使用共享内存
- Qt实现应用单实例运行(2)-使用自定义类
- [瞎掰]单实例的应用
- Qt实现应用程序单实例运行--LocalServer方式
- Qt实现应用程序单实例运行-LocalServer方式
- 可执行文件单实例运行且激活已运行的实例
- C#单实例运行的实现
- WinCE下应用程序的单实例运行
- WinCE下应用程序的单实例运行
- 单实例运行
- VB 单实例运行
- 出现次数最多的数
- OpenGL-ES的学习资料
- 深入理解Java的接口和抽象类
- Eclipse进行可视化的GUI开发3大GUI插件
- 可视化深度学习和人类感知Visualizing Representations: Deep Learning and Human Beings-2
- Qt应用的单实例运行
- //最大乘积
- 有表头链表的基本操作
- Swift中的可选类型(Optional)以及?和!的用法详解
- 命名规范
- 双向链表的建立与基本操作
- opencv3.0中contrib模块的添加
- 【整理】nand相关
- C语言数组实现栈操作