?? 單實例問題.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 + -