CArchive::WriteClass
派生クラスでシリアル化時に基本クラスのバージョンとクラス情報を格納するために WriteClass を使用します。
void WriteClass(
const CRuntimeClass* pClassRef
);
パラメーター
- pClassRef
必要なクラスの参照に対応する CRuntimeClass の構造体へのポインター。
解説
WriteClass は CArchiveに基本クラスの CRuntimeClass への参照を書き込みます。参照を取得するに CArchive::ReadClass を使用します。
WriteClass はアーカイブ クラス情報は、ランタイム クラスと互換性があることを確認します。これに互換性がない場合、WriteClass は CArchiveExceptionをスローします。
クラスは、ランタイム DECLARE_SERIAL と IMPLEMENT_SERIALを使用する必要があります。; それ以外 WriteClass は CNotSupportedExceptionをスローします。
クラスの参照の読み取りと書き込みの両方を処理 WriteClassの代わりに SerializeClass を使用できます。
使用例
CFile myFile(_T("My__test__file.dat"),
CFile::modeCreate | CFile::modeReadWrite);
// Create a storing archive.
CArchive arStore(&myFile, CArchive::store);
// Store the class CAge in the archive.
arStore.WriteClass(RUNTIME_CLASS(CAge));
// Close the storing archive.
arStore.Close();
// Create a loading archive.
myFile.SeekToBegin();
CArchive arLoad(&myFile, CArchive::load);
// Load a class from the archive.
CRuntimeClass* pClass = arLoad.ReadClass();
if (!pClass->IsDerivedFrom(RUNTIME_CLASS(CAge)))
{
arLoad.Abort();
}
必要条件
ヘッダー : afx.h