次の方法で共有


シリアル化機構のバイパス

これまで見てきたように、フレームワークはファイルとの間でデータを読み書きする既定の方法を提供します。アーカイブ オブジェクトを通じてシリアル化は、のの必要な多くのアプリケーションに適しています。このようなアプリケーションは、メモリ内のファイルを完全に読み取り、ユーザーがファイルを更新できるようにし、ディスクに更新バージョンを再度書き込みます。

ただし、一部のアプリケーションは、データを大幅に異なる方法で操作し、これらのアプリケーションでは、アーカイブを使用してシリアル化が適しているとは限りません。たとえば、データベースのプログラム、テキストのみのファイルを書き込み、プログラムで編集する大きなファイルの一部のみ、データ ファイルを共有するプログラム プログラムが含まれます。

このような場合、 CArchive のオブジェクトではなく CFile のオブジェクトを使用してファイルの動作を仲介するに Serialize の関数を別の方法でオーバーライドできます。

開く(&&O),開く,[開く]読み取り書き込み閉じる(&&C),閉じる,終了しますかを使用してファイルを開く CFile クラスの Seek のメンバー関数は、ファイル ポインター ()をシーク ファイルの特定の時点に移動するには、レコード (バイト数)を指定した場合に読み込み、ユーザーがレコードを更新できるようにし、同じポイントに再度検索し、ファイルに、レコードを書き込みます。フレームワークによってファイルを開き、 CFile のオブジェクトへのポインターを取得するには、クラス CArchiveGetFile のメンバー関数を使用できます。さらに高度な柔軟な使用方法では、クラス CWinAppOnOpenDocumentOnSaveDocument のメンバー関数をオーバーライドできます。詳細については、 " MFC リファレンスのクラス CFile を参照してください。

このシナリオでは、 Serialize のオーバーライドは、何もしません。たとえば、このファイルを、ドキュメントを閉じる最新保持するヘッダー ファイルを読み取り、書き込みさせる必要があります。

参照

関連項目

ドキュメントの使い方