C++实现序列化,可以用宏快速添加其他简单类型支持
用法
//读取,写入类似
CArchive ar;
int a = 0,b = 0,c = 0;
TCHAR* pStr = NULL;
pStr = new TCHAR[100];
ar.Open(_T("H:\\abc.bin"),true);
ar>>pStr;
ar.Close();
Archive.h
#pragma once
#ifndef _ARCHIVE_H_
#define _ARCHIVE_H_
#pragma warning(disable:4996)
#include <tchar.h>
#include <iostream>
#include <fstream>
#ifdef UNICODE
#define _tfopen _wfopen
#define _tstring wstring
#else
#define _tfopen fopen
#define _tstring string
#endif
//类对于序列化支持的简单声明
#define DECLARE_SERIAL(class_name) \
friend CArchive& operator>>(CArchive& ar, class_name* &pOb); \
friend CArchive& operator<<(CArchive& ar, class_name* &pOb);
#define IMPLEMENT_SERIAL(class_name) \
CArchive& operator>>(CArchive& ar, cl