情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

抽象データ モデル (Windows)

すべてのアプリケーションとオペレーティング システムには、抽象データ モデルがあります。多くのアプリケーションでは、抽象データ モデルが明示的に公開されることはありません。ただし、このモデルはアプリケーションのコードが記述されている方法を理解するのに役立ちます。ILP32 モデルとも呼ばれる 32 ビット プログラミング モデルでは、Integer データ型、LONG データ型、およびポインタ データ型は 32 ビット長です。ほとんどの開発者は、この事実を理解しないまま、このモデルを使用していました。Win32 API においては、これは (必ずしも安全ではありませんが) 有効な想定とされてきました。

64 ビット版の Windows では、データ型のサイズに関して、このように想定するのは妥当ではありません。ほとんどのアプリケーションではサイズを増加する必要がないので、すべてのデータ型を 64 ビット長にすると領域を無駄に消費することになります。ただし、アプリケーションでは、64 ビット データへのポインタが必要で、64 ビットのデータ型を保持できなければならないことがあります。これらのことを考慮した結果、LLP64 (または P64) と呼ばれる抽象データ モデルが誕生しました。LLP64 データ モデルでは、ポインタだけが 64 ビットに拡張され、他のすべての基本的なデータ型 (integer および LONG) は 32 ビット長のままです。

最初のうちは、64 ビット版の Windows で実行されるほとんどのアプリケーションは、32 ビット版の Windows から移植されたものになります。これは、注意深く記述された同一のソース コードを、32 ビット版と 64 ビット版の Windows のどちらでも実行できるようにすることを目的としています。データ モデルを定義しても、この作業の簡略化にはつながりません。ただし、まず、データ モデルがポインタのデータ型にのみ影響するようにすることが最初の一歩になります。次に、開発者がポインタ関連のデータのサイズを自動的に調整できる、一連の新しいデータ型を定義します。これにより、ポインタのサイズが 32 ビットから 64 ビットに変わるときに、ポインタに関連するデータのサイズが調整されるようになります。基本的なデータ型は 32 ビット長のままなので、ディスク上のデータ、ネットワーク経由で共有しているデータ、またはメモリ マップ ファイルを介して共有しているデータのサイズに変更はありません。これにより、32 ビット コードを 64 ビット版の Windows に移植する際の開発者の作業の多くが軽減されます。

これらの新しいデータ型は、Windows API ヘッダー ファイルに追加されています。そのため、すぐに新しい型を使用することができます。詳細については、「新しいデータ型」を参照してください。

このトピックに関するご意見をお寄せください (英語のみ)。

ビルド日付: 2009 年 5 月 30 日


コミュニティの追加

表示:
© 2015 Microsoft