名前付き、または名前なしの CSemaphore オブジェクトを構築します。
CSemaphore(
LONG lInitialCount = 1,
LONG lMaxCount = 1,
LPCTSTR pstrName = NULL,
LPSECURITY_ATTRIBUTES lpsaAttributes = NULL
);
パラメーター
lInitialCount
セマフォの初期使用カウント。 0 以上 lMaxCount 以下で指定します。lMaxCount
セマフォの最大使用カウント。 1 以上であることが必要です。pstrName
セマフォの名前。 プロセス間にまたがってアクセスされるときに指定します。 NULL, を指定すると、名前なしになります。 名前が既存のセマフォと一致すると、コンストラクターはその名前のセマフォを参照する新しい CSemaphore オブジェクトを構築します。 名前がセマフォではない既存の同期オブジェクトに一致すると構築は失敗します。lpsaAttributes
セマフォ オブジェクトのセキュリティ属性。 この構造体の詳細については、Windows SDK の「SECURITY_ATTRIBUTES」を参照してください。
解説
CSemaphore オブジェクトにアクセスするまたはオブジェクトを解放するには、CMultiLock オブジェクトまたは CSingleLock オブジェクトを構築し、そのオブジェクトの Lock および Unlock メンバー関数を呼び出します。
![]() |
---|
CSemaphore オブジェクトを作成した後で、GetLastError を使用して、ミューテックスが存在しないことを確認してください。 予期しないミューテックスが存在する場合は、プロセスに問題が発生したり、ミューテックスが悪用されたりする可能性があります。 この場合は、ハンドルを閉じ、オブジェクトの作成時にエラーが発生したときと同様の手順で処理を継続して、セキュリティを強化することをお勧めします。 |
必要条件
**ヘッダー:**afxmt.h