MFC 文件读取技术 CStdioFile_摘
学习—VC—转 2010-04-06 21:58:38 阅读 408 评论 0 字号:大中小 订阅
计算机是如何管理自身所存放着大量的信息的呢? windows 的磁盘管理程序为我们
提供了一套严密而又高效的信息组织开工 --- 硬盘上的信息是以文件的形式被管理的。
面向存储的文件技术
什么是文件? 计算机中,一篇文章、一幅图画、一个程序、一首歌曲等都是以文件的
形式存储在磁盘上的,每个文件都有一个文件名。计算机就是对文件按名存取的。文件名的
格式如下:主文件名 . 扩展名
文件名由主文件名和扩展名两部分组成,中间用小圆点隔开,其中扩展名可以省略。而
扩展名是用来区分文件类型的。 Windows 为了区分文件的类型,一些软件系统会自动给文
件加上“ .wps ”扩展名;画图程序画的图像文件一般为“ .bmp ”等。
在 windows 中,主文件名可以由英文字符、汉字、数字以及一些符号等组成,但不能
使用 +<>*?\ 等符号。
什么是文件夹?
在计算机中存放着数以万计的文件,为了便于管理这些文件,就像我们把文件分类放到
不同的抽屉中便于查阅一样,在计算机中也有像抽屉的东西,它就是文件夹。文件夹也要有
一个名字,取名的原则与文件的取名类似,只是不用再区分文件夹的类型,当文件夹多了以
后,还可以把某些文件夹归到一个大文件夹中去。久而久之,就构成了计算机中庞大的磁盘
文件结构。
为什么要在程序中使用文件?
通常,程序中的数据在程序运行结束后,就会从内存中清除,再次运行程序时不会自动
出现。在编制程序的过程中不可避免地会遇到将某些数据永久保存的问题,当关闭程序后,
依然可以使用这些数据,这时就需要进行文件操作。
文件类型
Visual c++ 处理的文件通常分为两种:
文本文件: 只可被任意文本编辑器读取 ASCII 文本。
二进制文件: 指对包含任意格式或无格式数据的文件的统称。
这里只介绍文本文件的读写, INI 文件也属于文本文件的范畴,且 INI 文件的结构和
用途与普通的文本文件不同,所以会单独介绍。
第一部分:文本文件
文本文件的读写
认识 CFile 类;认识文本文件;能够正确灵活应用文本文件存取信息;避免文本文件
读写的常见误区。
CFile 是 MFC 的文件操作基本类,它直接支持无缓冲的二进制磁盘 I/O 操作,并通
过其派生类支持文本文件、内存文件和 socket 文件。
客户操作记录实例功能预览及关键知识点
许多系统,出于安全或其他原因,常常要求随时对键盘进行监控,利用 Hook (钩子)
技术编写的应用程序能够很好地达到这个目的。本软件就制作了一个客户操作记录软件,即
在软件运行过程中,用户在键盘上的按键操作会被记录下来,这样对维护软件的正常运行非
常有利。
只要启动客户操作记录软件后,不管输入焦点是否在本软件上,按键都会被记录下来。
我们需要的是键盘的系统监控,只要本软件在运行,无论当前计算机在做什么,都能监测到
用户按键的行为并做出反应,这就要用到 Hook 技术。
Hook 技术在很多特殊软件中广泛应用,如,金山词霸的“取词”功能,就用到了 Hook
计技术。
钩子的本质是一段用以处理系统消息的程序,通过系统调用,将其挂入系统。钩子的种
类很多,每种钩子可以截获并处理相应的消息,每当特定的消息发出,在到达目的窗口之前,
钩子程序先行截获该消息、得到对此消息的控制权。此时在钩子函数中就可以对截获的消息
进行加工处理,甚至可以强制结束消息的传递。
从钩子的本质来看,可以优先截获操作系统的各种消息进行处理,所以它几乎无所不能,
因为 windows 的应用程序都是基于消息驱动的,应用程序的操作都依赖于它所得到的消息
的类型及内容。
如果 Hook 过程在应用程序中实现,若应用程序不是当前窗口时,该 Hook 就补齐作
用;如果 Hook 在 DLL 中实现,程序在运行中动态调用它,它能实时对系统进行监控。根
据需要,我们采用的是在 DLL 中实现 Hook 的方式。
(应用程序 exe? 和 DLL 的区别所在)
文本文件存储原理