12,964
回編集
細 (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 | ||