📄 单实例问题.txt
字号:
作者:rick1126
email: rickzhang@sina.com
日期:8/6/2001 9:55:10 PM
单实例问题目前主要就是一个是应用程序的不可重入, 另一个就是函数的不可重入.
1. 应用程序的不可重入
1) FindWindow
使用FindWindow( 类名, 标题 )可以保证那些使用主窗口的应用程序的单实例, 不过有时候因为标题用来表示某些动态信息显得不是很牢靠, 而且类名也往往是共享的, 使用Spy++就可以知道
2) CreteMutex
在应用程序的入口使用CreateMutex( 安全属性结构指针, 是否手动重置事件句柄布尔变量, 初始化是否是被标记的返回一个全局句柄布尔变量, 句柄名称 )创建一个唯一信号量句柄, 退出的时候使用CloseHandle( 句柄 ). 当应用程序重入的时候利用OpenMutex就可以检测当前的应用程序是否已经被启动了, 这种方法比较保险.
2. 函数的不可重入
1) 线程互斥
一般使用CMutex或者和上面的CreateMutex一样创建一个互斥量就可以保证线程函数之间的互斥调用
2) 重入限制
使用一个static BOOL 变量可以防止函数重入
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -