?? 單實例問題.txt
字號:
作者:rick1126
email: rickzhang@sina.com
日期:8/6/2001 9:55:10 PM
單實例問題目前主要就是一個是應(yīng)用程序的不可重入, 另一個就是函數(shù)的不可重入.
1. 應(yīng)用程序的不可重入
1) FindWindow
使用FindWindow( 類名, 標(biāo)題 )可以保證那些使用主窗口的應(yīng)用程序的單實例, 不過有時候因為標(biāo)題用來表示某些動態(tài)信息顯得不是很牢靠, 而且類名也往往是共享的, 使用Spy++就可以知道
2) CreteMutex
在應(yīng)用程序的入口使用CreateMutex( 安全屬性結(jié)構(gòu)指針, 是否手動重置事件句柄布爾變量, 初始化是否是被標(biāo)記的返回一個全局句柄布爾變量, 句柄名稱 )創(chuàng)建一個唯一信號量句柄, 退出的時候使用CloseHandle( 句柄 ). 當(dāng)應(yīng)用程序重入的時候利用OpenMutex就可以檢測當(dāng)前的應(yīng)用程序是否已經(jīng)被啟動了, 這種方法比較保險.
2. 函數(shù)的不可重入
1) 線程互斥
一般使用CMutex或者和上面的CreateMutex一樣創(chuàng)建一個互斥量就可以保證線程函數(shù)之間的互斥調(diào)用
2) 重入限制
使用一個static BOOL 變量可以防止函數(shù)重入
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -