CArchive::SerializeClass
基本クラスのバージョン情報を保存および読み込みすると、このメンバー関数を呼び出します。
void SerializeClass(
const CRuntimeClass* pClassRef
);
パラメーター
- pClassRef
基本クラスのランタイム クラスのオブジェクトへのポインター。
解説
SerializeClass は CArchiveの方向に応じて CArchive のオブジェクトにクラスへの参照を、読み取りまたは書き込みを行います。ReadClass の代わりに SerializeClass、基本クラスのオブジェクトをシリアル化する便利な方法として WriteClass を使用してください; SerializeClass により、コードおよびいくつかのパラメーターが必要です。
ReadClassのように、SerializeClass はアーカイブ クラス情報は、ランタイム クラスと互換性があることを確認します。これに互換性がない場合、SerializeClass は CArchiveExceptionをスローします。
クラスは、ランタイム DECLARE_SERIAL と IMPLEMENT_SERIALを使用する必要があります。; それ以外 SerializeClass は CNotSupportedExceptionをスローします。
pRuntimeClass のパラメーターの値を取得するに RUNTIME_CLASS のマクロを使用します。基本クラスは IMPLEMENT_SERIAL マクロを使用する必要があります。
使用例
class CBaseClass : public CObject
{
DECLARE_SERIAL(CBaseClass);
};
class CDerivedClass : public CBaseClass
{
public:
virtual void Serialize(CArchive& ar);
};
void CDerivedClass::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
//normal code for storing contents
//of this object
}
else
{
//normal code for reading contents
//of this object
}
//allow the base class to serialize along
//with its version information
ar.SerializeClass(RUNTIME_CLASS(CBaseClass));
CBaseClass::Serialize(ar);
}
必要条件
ヘッダー : afx.h