次の方法で共有


CArchive オブジェクトとは

CArchive オブジェクトは、CFile オブジェクトとの間でシリアル化可能なオブジェクトの書き込みまたは読み取りを行うためのタイプ セーフなバッファーリング メカニズムを提供します。 通常、CFile オブジェクトはディスク ファイルを表しますが、おそらくはクリップボードを表すメモリ ファイル (CSharedFile オブジェクト) である場合もあります。

特定の CArchive オブジェクトでは、データを格納 (書き込み、シリアル化) するか、データの読み込み (読み取り、逆シリアル化) を行いますが、両方を行うことはありません。 CArchive オブジェクトの有効期間は、ファイルとの間でのオブジェクトの書き込みまたは読み取りのためのパス スルー 1 回に制限されます。 したがって、データをファイルにシリアル化し、ファイルから逆シリアル化するには、連続して作成された 2 つの CArchive オブジェクトが必要になります。

アーカイブによってオブジェクトがファイルに格納されると、オブジェクトに CRuntimeClass 名がアタッチされます。 その後、別のアーカイブによってオブジェクトがファイルからメモリに読み込まれると、オブジェクトの CRuntimeClass に基づいて CObject 派生オブジェクトが動的に再構築されます。 格納アーカイブによって特定のオブジェクトがファイルに書き込まれると、そのオブジェクトは複数回参照される場合があります。 ただし、読み込みアーカイブでは、オブジェクトは 1 回だけ再構築されます。 アーカイブがオブジェクトに CRuntimeClass 情報をアタッチし、考えられる複数の参照を考慮してオブジェクトを再構築する方法の詳細については、テクニカル ノート 2 を参照してください。

データがアーカイブにシリアル化されるにつれ、バッファーがいっぱいになるまでアーカイブはデータを蓄積します。 その後、アーカイブは、CArchive オブジェクトが指す CFile オブジェクトにバッファーを書き込みます。 同様に、アーカイブからデータを読み取る際は、アーカイブはファイルからバッファーにデータを読み取り、次にバッファーから逆シリアル化されたオブジェクトにデータを読み取ります。 このバッファリングにより、ハード ディスクが物理的に読み取られる回数が減ることで、アプリケーションのパフォーマンスが向上します。

関連項目

シリアル化: オブジェクトのシリアル化