次の方法で共有


CArchive::CArchive

CArchive オブジェクトを構築し、オブジェクトの読み込み、または格納するかどうかを指定します。

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

パラメーター

  • pFile
    永続データの最終的な読み込み元、または読み込み先となる CFile オブジェクトへのポインター。

  • nMode
    アーカイブから読み込むかアーカイブに格納するかを指定するフラグ。 パラメーター nMode には、次のいずれかの値を指定する必要があります。

    • CArchive::load   アーカイブからデータを読み込みます。 CFile 読み込みアクセス許可が必要です。

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

    • CArchive::bNoFlushOnDelete   アーカイブ デストラクターを呼び出すときに、アーカイブで Flush が自動的に呼び出されないようにします。 このフラグを設定する場合は、デストラクターを呼び出す前に、Close を明示的に呼び出す必要があります。 デストラクターを呼び出す前に Close を明示的に呼び出さないと、データが破損します。

  • nBufSize
    内部ファイル バッファーのサイズをバイト単位で指定する整数。 バッファー サイズの既定値は 4,096 バイトです。 大きなオブジェクトを通常どおりアーカイブする場合は、現在のファイルのバッファー サイズの倍数にあたる大きいバッファー サイズを使うと、パフォーマンスが向上します。

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

解説

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

アーカイブを閉じるまでは、CFile 操作を使用してファイルの状態を変更できません。 アーカイブを閉じる前に 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

その他の技術情報

CArchive のメンバー