

Программирование на языке MFC
Мой второй блог в серии программирования
Запись в архив объектов
Для того чтобы записать объект в архив, необходимо воспользоваться методом WriteObject().Ero исходный код находится в файле arcobj.cpp:
void CArchive::WriteObject(const CObject* pOb) {
// object can be NULL
ASSERT(IsStoringO); // proper direction DWORD nOblndex;
ASSERT(sizeof(nOblndex) == 4); ASSERT(sizeof(wNullTag) == 2); ASSERT(sizeof(wBigObjectTag) == 2); ASSERT(sizeof(wNewClassTag) == 2);
// make sure m_pStoreMap is initialized MapObject(NULL);
if (pOb == NULL) {
// save out null tag to represent NULL pointer *this « wNullTag;
}
else if ((nOblndex = (DWORD)(*m_pStoreMap)[(void*)pOb])
!= 0)
// assumes initialized to 0 map
{
// save out index of already stored object if (nOblndex < wBigObjectTag)
*this « (WORD)nOblndex; else {
*this « wBigObjectTag; *this « nOblndex;
}
else {
// write class of object first
CRuntimeClass* pClassRef = pOb->GetRuntimeClass(); WriteClass(pClassRef);
// enter in stored object table, checking for overflow CheckCount();
(*m_pStoreMap) [ (void*) pOb] = (void**) m_nMapCount++;
// cause the object to serialize itself ((CObject*)pOb)->Serialize(*this); }
Похожие статьи: Запись в архив объектов
