ホームページ  >  記事  >  ハンドルとは何ですか?

ハンドルとは何ですか?

藏色散人
藏色散人オリジナル
2019-05-07 10:07:4149662ブラウズ

ハンドルには多くの意味があります: 1. プログラミングでは、特別なスマート ポインターを指します; 2. Windows プログラミングでは、アプリケーションによって作成または使用されるオブジェクトを識別するために Windows によって使用される唯一のオブジェクトです。 Windows は、アプリケーション インスタンス、ウィンドウ、コントロール、ビットマップ、GDI オブジェクトなどのオブジェクトを識別するためにさまざまなハンドルを使用します。

ハンドルとは何ですか?

#ハンドル、解釈は 2 つあります

最初に説明: ハンドルは特別なスマート ポインターです。アプリケーションが他のシステム (データベースやオペレーティング システムなど) によって管理されているメモリ ブロックやオブジェクトを参照する場合、ハンドルが使用されます。

2 番目の説明 : Windows プログラミング全体の基礎。

ハンドルは、アプリケーションによって作成または使用されるオブジェクトを識別するために Windows によって使用される一意の整数です。WINDOWS はさまざまなハンドルを使用して、アプリケーション インスタンス、ウィンドウ、コントロール、ビットマップ、GDI オブジェクトなどのアプリケーションを識別します。

ハンドルとは、アプリケーション内の異なるオブジェクトおよび同じタイプの異なるオブジェクトを識別するために使用される一意の整数値、つまり 4 バイト (64 ビット プログラムでは 8 バイト) の長さの値を指します。ウィンドウ、ボタン、アイコン、スクロール バー、出力デバイス、コントロール、ファイルなどのインスタンス。アプリケーションはハンドルを通じて対応するオブジェクトの情報にアクセスできますが、ハンドルはポインターではないため、プログラムはハンドルを使用してファイル内の情報を直接読み取ることはできません。ハンドルが I/O ファイルにない場合は役に立ちません。ハンドルは、アプリケーションで作成または使用されるオブジェクトを識別するために Windows が使用する一意の整数です。Windows はオブジェクトを識別するためにハンドルを広範囲に使用します。

Windows がハンドルを設定する必要がある理由は、根本的にはメモリ管理メカニズム、つまり仮想アドレスの問題によるものです。つまり、データのアドレスを変更する必要があり、変更後は誰かがその変更を記録して管理する必要があるため、システムはハンドルを使用してデータのアドレスの変更を記録します。プログラミングでは、ハンドルは特別なスマート ポインタであり、アプリケーションが他のシステム (データベースやオペレーティング システムなど) によって管理されているメモリ ブロックやオブジェクトを参照する場合、ハンドルが使用されます。

注:

ハンドルは Windows プログラミングにおいて非常に重要な概念です。Windows プログラムでは、メモリ ブロック、ファイル、タスク、または動的にロードされるモジュールの識別に物理アドレスは使用されません。代わりに、Windows API はこれらの項目に特定のハンドルを割り当て、そのハンドルをアプリケーションに返し、アプリケーションはそれらの項目に対して操作を実行します。

ハンドルはオブジェクトまたはプロジェクトを識別するために使用される識別子であることを理解する必要があります。データ型の観点から見ると、これは単なる 16 ビットの符号なし整数です。アプリケーションはほとんどの場合、Windows 関数を呼び出すことによってハンドルを取得し、他の Windows 関数はこのハンドルを使用して対応するオブジェクトを参照できます。 Windows プログラミングでは多数のハンドルが使用されます。

以上がハンドルとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。