C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 222 - DECLARE_SERIAL и IMPLEMENT_SERIAL / MFC шаг за шагом / Visual C++

Шаг 222 - DECLARE_SERIAL и IMPLEMENT_SERIAL

IMPLEMENT_SERIAL( имя класса, базовый класс, версия )
DECLARE_SERIAL( имя класса )
// имя класса физическое не в кавычках

Эти макроопределения генерируют код необходимый для сохранения и восстановления класса на диск. Продолжение нашей цепочки:

IMPLEMENT_DYNAMIC
	IMPLEMENT_DYCREATE
		IMPLEMENT__SERIAL

Все логично, чтобы восстанавливать и сохранять класс надо знать о нем информацию и уметь его динамически создавать. Это следующая ступень развития. А вот для убедительности код.

#define IMPLEMENT_SERIAL(class_name, base_class_name, wSchema) \
	CObject* PASCAL class_name::CreateObject() \
		{ return new class_name; } \
	_IMPLEMENT_RUNTIMECLASS(class_name, base_class_name, wSchema, \
		class_name::CreateObject) \
	AFX_CLASSINIT _init_##class_name(RUNTIME_CLASS(class_name)); \
	CArchive& AFXAPI operator>>(CArchive& ar, class_name* &pOb) \
		{ pOb = (class_name*) ar.ReadObject(RUNTIME_CLASS(class_name)); \
			return ar; } \

| |
Автор Каев Артем.
[AD]