在win32下,實現程式互斥執行的方法有很多種,我簡單分析以下幾種不同的實現:
一、在vc下的實現
visual c++ 是win32程式設計最主要也是最強大的程式設計工具這一,引用一名話來說vc就是「只有你想不到的,沒有vc做不到的」。廢話少說,下面看看用vc是如何這個功能。
a. 使用編譯器來實現(使用mfc框架):
在.cpp檔案開頭加上以下幾行:
#pragma data_seg("shared")#pragma data_seg()
#pragma comment(linker,"/section:shared,rws")
handle hobject = createmutex(null,false,"ljpxyxc");if(getlasterror() == error_already_exists)
private sub form1_load()三、delphi,c++builder 的實現msgbox 「程式已經執行!」
unload me
end if
end sub
我沒有發現delphi 和c++builder 的編譯器有實現像vc一樣的功能。所以我們可以呼叫createmutex來實現這個功能。
createmutext(),getlasterror()這兩個函式的詳細資訊可以參考msdn.
C 建立互斥程式 只允許執行乙個程式例項
方法一 使用執行緒互斥變數.通過定義互斥變數來判斷是否已執行例項,但是這種方法有乙個問題,當程式執行中需要採取重啟程式時會出現問題,沒有同意程式執行的情況下,仍然提示有形同程式在執行。把program.cs檔案裡的main 函式改為如下 private static mutex s mutex 應用...
C 建立互斥程序(程式只能執行乙個例項)
c 建立互斥程序 程式 互斥程序 程式 簡單點說,就是在系統中只能有該程式的乙個例項執行.現在很多軟體都有這功能,如maxthon 可以設定為 只允許開啟乙個窗體 還有bitcomet等.我也是看到這些軟體的這個功能才來研究這個問題的.要實現程式的互斥,通常有4中方式,下面用 c 語言來實現 實現方...
只允許程式執行乙個例項
有兩類方法 第一類 判斷程序是否存在,如果存在則直接退出。第二類 最簡單也是最準確的方法,用命名的互斥物件。如下 m hmutex 可以是成員變數,全域性變數或者是區域性變數 m hmutex createmutex null,false,t not imide if m hmutex 在呼叫 cr...