次の方法で共有


CArchive::CArchive

CArchive オブジェクトを構築し、オブジェクトを読み込むか、または保存に使用するかを指定します。

CArchive(
   CFile* pFile,
   UINT nMode,
   int nBufSize = 4096,
   void* lpBuf = NULL 
);

パラメーター

  • pFile
    永続データの最終元またはリンク先である CFile オブジェクトへのポインター。

  • nMode
    アーカイブにオブジェクトが読み込みまたは保存するかを指定するフラグ。nMode のパラメーターには、次の値のいずれかが必要です: 1

    • アーカイブからのデータの 読み込みCArchive::loadCFile の読み取りアクセス許可だけです。

    • CArchive::store はアーカイブにデータを保存します。CFile の書き込みアクセス許可が必要です。

    • CArchive::bNoFlushOnDelete はアーカイブのデストラクターを呼び出すときに、アーカイブが自動的に Flush を呼び出すことができません。デストラクターを呼び出す前に設定し、このフラグ [閉じる]、明示的にを呼び出すことを保証します。、データが破損しています。

  • nBufSize
    ファイル内部バッファーのサイズを指定するバイト整数。既定のバッファー サイズが 4,096 バイトであることに注意してください。定期的に大きいオブジェクトをアーカイブすると、ファイル バッファーのサイズの倍数であるは、バッファー サイズを使用してパフォーマンスが向上します。

  • lpBuf
    サイズ nBufSizeのユーザーが指定したバッファーへのオプションのポインター。このパラメーターを指定しない場合、アーカイブは、オブジェクトが破棄されると、ローカル ヒープとフリーからバッファーをに割り当てます。アーカイブは、ユーザーが指定したバッファーを解放しません。

解説

アーカイブを作成した後、この仕様は変更できません。

アーカイブ ファイルを閉じるまでの状態を変更するために CFile 操作を使用することはできません。このような操作はアーカイブの整合性を損ないます。次のシリアル化の際に GetFile のメンバー関数からを CFile::GetPosition 関数を使用してアーカイブ ファイルのオブジェクトを取得して、ファイル ポインターの位置をいつでもアクセスできます。ファイル ポインターの位置を取得する前に CArchive::Flush を呼び出す必要があります。

使用例

CFile file;
TCHAR szBuf[512];
if( !file.Open(_T("CArchive__test__file.txt"), 
   CFile::modeCreate | CFile::modeWrite)) 
{
   #ifdef _DEBUG
     AFXDUMP(_T("Unable to open file\n"));
     exit(1);
   #endif
}
CArchive ar(&file, CArchive::store, 512, szBuf);

必要条件

ヘッダー : afx.h

参照

関連項目

CArchive クラス

階層図

CArchive::Close

CArchive::Flush

CFile::Close