互斥執行乙個程式例項

2021-05-24 10:42:15 字數 772 閱讀 7382

在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()

msgbox 「程式已經執行!」

unload me

end if

end sub

三、delphi,c++builder 的實現

我沒有發現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...