(1)就是实现了P*****(名字忘了,楼下补充)接口的对象,它可以将自身的状态数据保存起来在以后实列化的时候恢复以前的状态
注意是自身的 状态 信息
状态信息是啥 比如你有一个 CPerson类
person的名字和年龄就是状态
因为这个状态使此person不同于比person2偶不大熟,留给楼下的
注意是自身的 状态 信息
状态信息是啥 比如你有一个 CPerson类
person的名字和年龄就是状态
因为这个状态使此person不同于比person2偶不大熟,留给楼下的
1.关于持久对象
持久对象是这样一种对象:它在卸载组件之前,可以将组件的状态保存在持久介质上--比如磁盘文件.
一个持久对象组件可以分为两种状态,未运行时的保持状态和运行时的可变化状态.举例来说,一个excel文件(xls)就是一种持久组件.在平时是以文件形式存在的,如果运行excel程序,那么装入文件,就形成动态的workbook对象.直到你再次存盘将其持久化.
在vb程序中你可以这样调用
set oWookBook=getobject("myBook.xls")
从而将一个xls文件变成一个对象.2.关于名字对象.
名字对象是一组字符串的表现形式,当中用特殊的分隔符分开
比如"Sheet1!R1C1:R7C3"就是一种名字对象
名字对象最早是在ole嵌入的时候使用的
比如在一个word文档中嵌入一个excel工作簿,工作簿里又插入一副图片
那么你就可以分层次的找到你的实际对象了
你可以将名字对象想像成com中的url:)我的理解,不知道正确与否,请大侠们指正
你把我从一团浆糊中救起.^_^^_^我自己在根据上面的提醒后,重新认真看了一遍书:
对永久对象有以下体会:
仍以excel为例:
我觉得,一个excel的文件*.xls不是一个永久对象,而是永久对象存储于磁盘上的状态信息.
它作为一个存储对象和excel组件程序向联系.我觉得excel组件程序才是永久对象.此时它处于保持状态.
要使其变为运行状态,通过名字对象找到与*.xls相联系的excel组件对象,并得到其clsid.接着通过cocreatinstance函数来创建这个excel组件(即永久对象),同时用永久对象的load函数来将*.xls作为状态信息装入excel中.
这样就重现了原来的excel文件.
以上是我个人对永久对象的一些猜测.
望各位批评,指教.^_^关于名字对象我还没有看完,等看完后我会继续提出我的疑问,看法.
+
+-- IPersistFile
+-- IPersistStream
+-- IpersistStorage
的com对象。可以比照MFC CObject的序列化的概念,主要为了保存对象状态、实现对象网络传输等等。