-
-
[旧帖] [原创]新手学对象管理 0.00雪花
-
发表于: 2015-8-18 22:00 1283
-
首先感谢 看雪论坛 有那么多帖子让新手看, 还要感谢 梦织未来的梦无极大大 给予的指点。
先说说我开始学习时候的两个困惑,
1,每个 OBJECT_TYPE 都有一个创建时候给的序号,是按1.2.3......的顺序排列的,但是他们在对象目录 ObjectTypes 里面是按哈希数表排列的,我一直没弄清他们之间的关系。
2,我一直以为属性是不用管理的,就像自然界的各种物质属性就是自带在物质上的,我们根本看不到,也不能去管理这些属性,只能说掌握他们规律以后去运用他们。但是在计算机里面,你初始化的属性也是写在内存上的,当被写到内存上以后,其实就是已经物质化,也就是说你可以像管理实体一样的,管理属性,所以在对象目录哈希表中,有个Object_Type的类型。
对于第一个问题,类型对象的名字也是按哈希表在对象目录中排列的,但是他们内在的有一个顺序,查了下WRK源码,在pbtype.c里面,是用 InsertTailList 把新建的对象类型放在type类型的链表里面。
CreatorInfo = OBJECT_HEADER_TO_CREATOR_INFO( NewObjectTypeHeader );
if (CreatorInfo != NULL) {
InsertTailList( &ObpTypeObjectType->TypeList, &CreatorInfo->TypeList );
}
对于第二个问题,微软的管理策略是抽象抽象在抽象,现在就能明白为什么把对象属性也当成物质对象来管理了。第一,是为了方便管理,第二,属性变成二进制代码写出来的时候,也直接变成物质对象了。所以也可以按对象来管理。
我觉得微软就是把任何对象都固定在某一种格式里面,好方便它管理。
新人一点简单认识,求轻喷。。。。
先说说我开始学习时候的两个困惑,
1,每个 OBJECT_TYPE 都有一个创建时候给的序号,是按1.2.3......的顺序排列的,但是他们在对象目录 ObjectTypes 里面是按哈希数表排列的,我一直没弄清他们之间的关系。
2,我一直以为属性是不用管理的,就像自然界的各种物质属性就是自带在物质上的,我们根本看不到,也不能去管理这些属性,只能说掌握他们规律以后去运用他们。但是在计算机里面,你初始化的属性也是写在内存上的,当被写到内存上以后,其实就是已经物质化,也就是说你可以像管理实体一样的,管理属性,所以在对象目录哈希表中,有个Object_Type的类型。
对于第一个问题,类型对象的名字也是按哈希表在对象目录中排列的,但是他们内在的有一个顺序,查了下WRK源码,在pbtype.c里面,是用 InsertTailList 把新建的对象类型放在type类型的链表里面。
CreatorInfo = OBJECT_HEADER_TO_CREATOR_INFO( NewObjectTypeHeader );
if (CreatorInfo != NULL) {
InsertTailList( &ObpTypeObjectType->TypeList, &CreatorInfo->TypeList );
}
对于第二个问题,微软的管理策略是抽象抽象在抽象,现在就能明白为什么把对象属性也当成物质对象来管理了。第一,是为了方便管理,第二,属性变成二进制代码写出来的时候,也直接变成物质对象了。所以也可以按对象来管理。
我觉得微软就是把任何对象都固定在某一种格式里面,好方便它管理。
新人一点简单认识,求轻喷。。。。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
他的文章
- [原创]求购一本 软件调试 的书 5142
- [原创][讨论]编程技术不是“葵花宝典” 3875
看原图
赞赏
雪币:
留言: