次の方法で共有


抽象データ モデル

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

64 ビット Windows では、このデータ型サイズでのパリティの前提は無効です。 ほとんどのアプリケーションではサイズを増やす必要がないため、すべてのデータ型を 64 ビット長にすると、領域が無駄になります。 ただし、アプリケーションには 64 ビット データへのポインターが必要であり、選択したケースでは 64 ビットのデータ型を持つ機能が必要です。 これらの考慮事項により、LLP64 (または P64) と呼ばれる抽象データ モデルが選択されました。 LLP64 データ モデルでは、ポインターのみが 64 ビットに拡張されます。他のすべての基本データ型 (整数と long) は、長さが 32 ビットのままです。

最初は、64 ビット Windows で実行されるほとんどのアプリケーションは、32 ビット Windows から移植されます。 これは、慎重に記述された同じソースが、32 ビットと 64 ビットの両方の Windows で実行されることを目標としています。 データ モデルを定義しても、このタスクは容易になりません。 ただし、データ モデルがポインター データ型にのみ影響を与えるかどうかを確認することは、最初の手順です。 2 番目の手順では、開発者がポインター関連のデータのサイズを自動的に設定できる新しいデータ型のセットを定義します。 これにより、ポインターに関連付けられているデータは、ポインター のサイズが 32 ビットから 64 ビットに変化するにつれてサイズを変更できます。 基本データ型の長さは 32 ビットのままであるため、ディスク上のデータのサイズ、ネットワーク経由で共有されるデータ、またはメモリ マップされたファイルを介して共有されるデータに変更はありません。 これにより、開発者は、32 ビット コードを 64 ビット Windows に移植する作業の多くを軽減できます。

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