随笔 - 78  文章 - 1  trackbacks - 0
<2011年5月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

     摘要: 文件I/O

  虽然使用CArchive类内建的序列化功能是保存和加载持久性数据的便捷方式,但有时在程序中需要对文件处理过程拥有更多的控制权,对于这种文件输入输出(I/O)服务的需求,Windows提供了一系列相关的API函数,并由MFC将其封装为CFile类,提供了对文件进行打开,关闭,读,写,删除,重命名以及获取文件信息等文件操作的基本功能,足以处理任意类型的文件操作。CFile类是MFC文件类的基类,支持无缓冲的二进制输入输出,也可以通过与CArchive类的配合使用而支持对MFC对象的带缓冲的序列化。  阅读全文
posted @ 2008-10-26 20:08 Carrie 阅读(346) | 评论 (0)编辑 收藏
     摘要: 自定义持久类

  为了使一个类的对象成为持久的,可以自定义一个持久类,将持久性数据的存储和加载的工作交由自定义类自己去完成。这种处理方式也更加符合面向对象的程序设计要求。可以通过下面几个基本步骤来创建一个能序列化其成员变量的自定义持久类:

  1. 直接或间接从CObject类派生出一个新类。

  2. 在类的声明部分包含MFC的DECLARE_SERIAL宏,该宏只需要将类名作为参数。

  3. 重载基类的Serialize()函数,并添加对数据成员进行序列化的代码。  阅读全文
posted @ 2008-10-26 20:06 Carrie 阅读(201) | 评论 (0)编辑 收藏
     摘要: 持久性是对象所有的保存和加载其状态数据的能力。具有这种能力的对象能够在应用程序结束之前以某种方式将当前的对象状态数据记录下来,当程序再次运行时,通过对这些数据的读取而恢复到上一次任务结束时的状态。由于绝大多数的MFC类是直接或间接由MFC的CObject类派生出来的,因此这些MFC类都具有保存和加载对象状态的能力,是具有持久性的。在使用应用程序向导生成文档/视结构的程序框架时,就已经为应用程序提供了用于对象状态数据保存和加载的基本代码。

  阅读全文
posted @ 2008-10-26 20:05 Carrie 阅读(193) | 评论 (0)编辑 收藏
     摘要: socket是网络编程的基础,本文用打电话来类比socket通信中建立TCP连接的过程。
socket函数,表示你买了或者借了一部手机。
bind函数,告诉别人你的手机号码,让他们给你打电话。
listen函数,打开手机的铃声,而不是静音,这样有电话时可以立马反应。listen函数的第二个参数,最大连接数,表示最多有几个人可以同时拨打你的号码。不过我们的手机,最多只能有一个人打进来,要不然就提示占线。
connect函数,你的朋友知道了你的号码,通过这个号码来联系你。在他等待你回应的时候,不能做其他事情,所以connect函数是阻塞的。
accept函数,你听到了电话铃声,接电话,accept it!然后“喂”一声,你的朋友听到你的回应,知道电话已经打进去了。至此,一个TCP连接建立了。  阅读全文
posted @ 2008-10-26 20:03 Carrie 阅读(216) | 评论 (0)编辑 收藏