Windowsで名前付きオブジェクトを作成する場合、を呼び出しGetLastError()
て確認することで、オブジェクトがすでに存在するかどうかを確認できますERROR_ALREADY_EXISTS
。
二重の質問をする方法はありますか:CloseHandle()
名前付きリソースを閉じる(ハンドル)のは私の最後ですか?
いいえ、カーネルハンドルは参照カウントされません。を呼び出すとCloseHandle
、ハンドルが閉じます。
直接、いいえ。
ただし、の後にGetHandleInformationを呼び出すことにより、間接的に取得できます。ハンドルが有効でない場合、関数は失敗し、エラー番号をに設定します。CloseHandle
ERROR_INVALID_HANDLE
そして、いや、間接的にも、それについてもう一度考えてはいけません。これはあなたのハンドルが無効であることをあなたに伝えるだけです...あなたがそれを閉じたのであなたはすでに知っています。