• ベストアンサー

Windows のハンドル(HANDLE)

 すみません、教えて欲しいのですが、Windows でのハンドル(HANDLE)って何でしょうか?  マック(Macintosh)だと(たぶん)ポインタのポインタが実態です。 (メモリのガベージコレクトの為に利用されています)。  メモリーヒープへのポインタだと思います。  Windows でのプラットフォームで開発されている方は、どう解釈されているのでしょうか?  Windows の世界では、どう解釈されているか、今ひとつ分かりません。  よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.2

UNIXのファイルディスクリプタと同じで単なる管理番号に過ぎませんよ。UNIXみたく0がstdinとかのルールは無いようですけど。 初期の実装ではカーネルアドレス空間でデバイス管理領域へのポインタになっているとか聞いたこともありますけど、これはセキュリティ上の観点から修正されているはずです。 実際No.1さんの仰るとおり、ハンドルの実体を考えることに意味はありません。仕様として明示されている以外の部分はOSのバージョンが変わるときにどう変わるか分かりませんし、それで動かなくなるようなコードを書いても価値がありませんから。

その他の回答 (1)

  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.1

Windowsの中でも、32ビットプログラミングの世界(Windows NT/95以降)では、ハンドルは本来の意味どおりあくまでハンドルであって、その実体が何かを意識することはありません。 16ビットの時代(Win16)はハンドルの実体を知らないといろいろ不便なこともありましたが、32ビット(Win32)ではハンドルの実体を知る必要が全くなく、実体が何かを知っていてもアプリケーションプログラミングの上での利点もありません。

関連するQ&A