📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
細 Wiki がページ「二重起動を禁止する(MFC)」を「MFCの基礎 - 2重起動の禁止」に、リダイレクトを残さずに移動しました |
細 文字列「<source lang」を「<syntaxhighlight lang」に置換 |
||
| 9行目: | 9行目: | ||
== サンプルコード == | == サンプルコード == | ||
まず、CWinAppの派生クラスのヘッダファイルにミューテックスオブジェクトを保存するHANDLE型のメンバ変数を用意する。<br> | まず、CWinAppの派生クラスのヘッダファイルにミューテックスオブジェクトを保存するHANDLE型のメンバ変数を用意する。<br> | ||
< | <syntaxhighlight lang="c++"> | ||
CWinAppの派生クラス.h | CWinAppの派生クラス.h | ||
| 19行目: | 19行目: | ||
InitInstance関数の最初にCreateMutex関数を使用して作成し、CreateMutex関数の3番目の引数にそのアプリケーション固有の文字列(アプリケーション名でよい)を渡す。<br> | InitInstance関数の最初にCreateMutex関数を使用して作成し、CreateMutex関数の3番目の引数にそのアプリケーション固有の文字列(アプリケーション名でよい)を渡す。<br> | ||
その直後に、GetlastError関数で既に起動しているか調べる。起動している場合、そのままミューテックスオブジェクトを開放し終了させる。<br> | その直後に、GetlastError関数で既に起動しているか調べる。起動している場合、そのままミューテックスオブジェクトを開放し終了させる。<br> | ||
< | <syntaxhighlight lang="c++"> | ||
CWinAppの派生クラス.cpp | CWinAppの派生クラス.cpp | ||
| 40行目: | 40行目: | ||
<br> | <br> | ||
解放を記述する場所は、クラスウィザードでExitInstance関数を追加し、そこで解放する。<br> | 解放を記述する場所は、クラスウィザードでExitInstance関数を追加し、そこで解放する。<br> | ||
< | <syntaxhighlight lang="c++"> | ||
CWinAppの派生クラス.cpp | CWinAppの派生クラス.cpp | ||