1. ホーム
  2. c++

[解決済み] C++のハンドルとは何ですか?

2022-03-09 07:33:31

質問

ハンドルはポインターのようなもので、そうではなく、オブジェクトそのものではなく、オブジェクトへの参照を保持することができると聞いたことがあります。もっと詳しい説明を教えてください。

どのように解決するのですか?

ハンドルは、整数のインデックスからカーネル空間内のリソースへのポインタまで、あらゆるものがあります。ハンドルはリソースの抽象化を提供するものであり、リソース自体についてあまり知らなくても使用することができます。

例えば、Win32 APIのHWNDは、Windowのハンドルです。それ自体では何の役にも立たないし、そこから情報を得ることもできない。しかし、適切なAPI関数に渡すことで、さまざまなトリックを実行することができます。内部的には、HWNDはGUIのウィンドウテーブルのインデックスと考えることができます(これは必ずしも実装方法ではないかもしれませんが、このマジックが意味をなすようになります)。

EDIT: 具体的に何を質問されたのか100%ではありません。これは主に純粋なC/C++について話しています。