次の方法で共有


CArchive オブジェクトを作成する 2 つの方法

CArchive のオブジェクトを作成する方法が 2 つあります:

  • フレームワークに応じて CArchive オブジェクトの暗黙の作成

  • CArchive オブジェクトが明示的に作成

フレームワークに応じて CArchive オブジェクトの暗黙の作成

最も一般的で簡単な方法は、ドキュメントの CArchive のオブジェクトを格納、名前を付けて保存に代わって作成し、 [ファイル] メニューのコマンドを開くように、フレームワークがすることです。

アプリケーションのユーザーがファイル] メニューの [名前を付けて保存] コマンドを実行すると次に、フレームワークがすることです:

  1. 名前を付けて保存 のダイアログ ボックスを表示し、ユーザーからファイル名を取得します。

  2. CFile のオブジェクトとしてユーザーが指定するファイルを開きます。

  3. この CFile を指すオブジェクトを CArchive のオブジェクトを作成します。CArchive のオブジェクトの作成では、フレームワークは 「は」 「に負荷」に対してモード (書き込みは、シリアル化します)、設定します (非シリアル化します。読み取り)。

  4. Serialize の関数を CDocument- それに CArchive のオブジェクトへの参照を渡す派生クラスで定義された呼び出します。

ドキュメントの Serialize の関数は次に示すように CArchive のオブジェクトに、データを作成します。次に Serialize の関数からの戻り、フレームワークは、 CArchive のオブジェクトと CFile のオブジェクトを破棄します。

したがって、フレームワークがドキュメントの CArchive のオブジェクトを作成するためになんらか必要なのはアーカイブに対して読み書きドキュメントの Serialize 関数を実行することだけです。また、 CObjectの Serialize - ドキュメントの Serialize 関数が直接的または間接的にシリアル化派生オブジェクトを実装する必要があります。

CArchive オブジェクトが明示的に作成

フレームワークによるドキュメントのシリアル化のほかに CArchive のオブジェクトを必要とする場合がある場合、他の機会があります。たとえば、 CSharedFile のオブジェクトによって表されるクリップボードとの間でデータをシリアル化する場合があります。または、フレームワークによって提供されるとは異なるファイルを保存するユーザー インターフェイスを使用することもできます。この場合、明示的に CArchive のオブジェクトを作成できます。次の手順を使用してこれをフレームワークが同じ方法で、します。

明示的に CArchive オブジェクトを作成するには

  1. CFileから派生した CFile オブジェクトまたはオブジェクトを構築します。

  2. 次の例に示すように CArchiveのコンストラクターへの CFile のオブジェクトを、:渡します。

    CFile theFile;
    theFile.Open(_T("CArchive__Test.txt"), CFile::modeCreate | CFile::modeWrite);
    CArchive archive(&theFile, CArchive::store);
    

    CArchive のコンストラクターの 2 番目の引数はアーカイブはファイルとの間で保存したり、データの読み取りに使用されているかどうかを指定する列挙値です。オブジェクトの Serialize の関数はアーカイブ オブジェクトの IsStoring の関数を呼び出して、この状態をチェックします。

終了に保存するか、 CArchive へのデータの読み取りがオブジェクトを作成するときは、を閉じます。CArchive (および) CFileオブジェクトが自動的にアーカイブ ファイル (および)を閉じますが、明示的にエラーからリカバリを簡単にするため、お勧めになります。エラー処理に関する詳細については、技術情報 例外: 例外をキャッチし、削除しますを参照してください。

CArchive オブジェクトを閉じます。

  • 次の例に CArchive のオブジェクトを閉じる方法を示しています:

    archive.Close();
    theFile.Close();
    

参照

概念

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