程序调试--CObject对象的并行化

程序代码

 

 


在序列化宏IMPLEMENT_SERIAL中定义了一个重载>>的运算符,宏展开如下:

 

传进去指针的引用,然后>>运算符将根据文件中类的数据构建对象,将对象指针赋给pOb。它通过调用CArchive::ReadObject()函数,来构建出对象并做相应的初始化。

 


函数首先调用CArchive::ReadClass()函数,从数据中读取出类的CRuntimeClass信息,并返回对应的CRuntimeClass指针。

 


第一次写入类对象信息: 0xFFFF 版本号 类名称长度 类名称字符串 对象数据

非第一次同一类不同对象(小标记): (0x8000 | nClassIndex) 对象数据

非第一次同一类不同对象(大标记): 0x7FFF (0x80000000 | nClassIndex) 对象数据

非第一次写入相同对象(小标记): nObIndex

非第一次写入相同对象(大标记): 0x7FFF nObIndex

 

参数意思:

CRuntimeClass* pClassRefRequest 想要读取的CRuntimeClass信息

UINT* pSchema 用于返回读取到的版本号

DWORD* pObTag 用于返回读取到的对象标识

 


CRuntimeClass::Load()函数从文档中读取类信息,返回类的CRuntimeClass指针。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值