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