CArchive クラス
更新 : 2007 年 11 月
オブジェクトの複雑なネットワークを永続的なバイナリ形式 (通常はディスク ストレージ) に保存し、オブジェクトを削除した後も保持できます。
class CArchive
解説
CArchive には、基本クラスはありません。
オブジェクトは、後で 2 次記憶から読み込みができ、メモリに再構築できます。このようにデータを永続化させるプロセスを "シリアル化" と呼びます。
アーカイブ オブジェクトは、一種のバイナリ ストリームとして考えることができます。入出力ストリームと同じように、アーカイブをファイルと関連付け、バッファを使用してストレージにデータを書き込んだり、バッファを使用してストレージからデータを読み込んだりできます。入出力ストリームでは連続する ASCII 文字を処理しますが、アーカイブでは効率的な非冗長形式のバイナリ オブジェクト データを処理します。
CArchive オブジェクトを作成する前に、CFile オブジェクトを作成する必要があります。また、アーカイブの読み込みや格納のステータスが、ファイルのオープン モードに対応している必要があります。アクティブにできるアーカイブは、各ファイルにつき 1 つです。
CArchive オブジェクトを構築している場合は、このオブジェクトを開いているファイルを表す CFile クラス (または派生クラス) のオブジェクトに結び付けます。アーカイブに読み込み、または格納をするかどうかも指定します。CArchive オブジェクトは、プリミティブ型だけでなく、シリアル化のために設計された CObject の派生クラスのオブジェクトも処理できます。シリアル化できるクラスには、通常 Serialize メンバ関数があり、DECLARE_SERIAL マクロおよび IMPLEMENT_SERIAL マクロを使用します。これについては、「CObject クラス」を参照ください。
オーバーロードされた出力ストリーム演算子 (<<) と入力ストリーム演算子 (>>) は、プリミティブ型と CObject の派生クラスの両方をサポートできるアーカイブ プログラミング インターフェイスです。
CArchive では、MFC Windows ソケット クラスの CSocket と CSocketFile を使用するプログラミングもサポートします。IsBufferEmpty メンバ関数は、MFC Windows ソケット クラスを使用したプログラミングをサポートします。
CArchive の詳細については、「シリアル化」および「Windows ソケット : アーカイブ付きソケットの使用」を参照してください。
必要条件
ヘッダー : afx.h