シリアル化機構のバイパス
これまで見てきたように、フレームワークはファイルとの間でデータを読み書きする既定の方法を提供します。アーカイブ オブジェクトを通じてシリアル化は、のの必要な多くのアプリケーションに適しています。このようなアプリケーションは、メモリ内のファイルを完全に読み取り、ユーザーがファイルを更新できるようにし、ディスクに更新バージョンを再度書き込みます。
ただし、一部のアプリケーションは、データを大幅に異なる方法で操作し、これらのアプリケーションでは、アーカイブを使用してシリアル化が適しているとは限りません。たとえば、データベースのプログラム、テキストのみのファイルを書き込み、プログラムで編集する大きなファイルの一部のみ、データ ファイルを共有するプログラム プログラムが含まれます。
このような場合、 CArchive のオブジェクトではなく CFile のオブジェクトを使用してファイルの動作を仲介するに Serialize の関数を別の方法でオーバーライドできます。
開く(&&O),開く,[開く]、 読み取り、 書き込み、 閉じる(&&C),閉じる,終了しますかを使用してファイルを開く CFile クラスの Seek のメンバー関数は、ファイル ポインター ()をシーク ファイルの特定の時点に移動するには、レコード (バイト数)を指定した場合に読み込み、ユーザーがレコードを更新できるようにし、同じポイントに再度検索し、ファイルに、レコードを書き込みます。フレームワークによってファイルを開き、 CFile のオブジェクトへのポインターを取得するには、クラス CArchive の GetFile のメンバー関数を使用できます。さらに高度な柔軟な使用方法では、クラス CWinAppの OnOpenDocument と OnSaveDocument のメンバー関数をオーバーライドできます。詳細については、 " MFC リファレンスのクラス CFile を参照してください。
このシナリオでは、 Serialize のオーバーライドは、何もしません。たとえば、このファイルを、ドキュメントを閉じる最新保持するヘッダー ファイルを読み取り、書き込みさせる必要があります。