次の方法で共有


CSemaphore::CSemaphore

更新 : 2007 年 11 月

名前付き、または名前なしの 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 メンバ関数を呼び出します。

6hwaf8fd.alert_security(ja-jp,VS.90).gifセキュリティに関するメモ :

CSemaphore オブジェクトを作成した後で、GetLastError を使用して、ミューテックスが存在しないことを確認してください。予期しないミューテックスが存在する場合は、プロセスに問題が発生したり、ミューテックスが悪用されたりする可能性があります。この場合は、ハンドルを閉じ、オブジェクトの作成時にエラーが発生したときと同様の手順で処理を継続して、セキュリティを強化することをお勧めします。

必要条件

ヘッダー : afxmt.h

参照

参照

CSemaphore クラス

階層図

CMutex クラス

CEvent クラス

CMultiLock クラス

CSingleLock クラス

その他の技術情報

CSemaphore のメンバ