MFCWindows应用程序设计(第2版)

MFCWindows应用程序设计(第2版)"

作者:任哲
ISBN:9787302155492
定价:¥33
字数:千字
页数:
出版时间:2007.09.01
开本:
版次:1-6
装帧:
出版社:清华大学出版社
简介

本书为《MFC Windows 应用程序设计》的第2版。本书沿袭前一版的编写原则和风格,在读者学习了C/C++的基础上,从Windows SDK程序设计出发,用C++类对Windows应用程序进行了模拟封装,重点介绍MFC的应用程序框架。随后以精练的语言介绍Windows的图形图像处理、应用程序界面、资源、文件、动态链接库、进程与线程管理等知识。最后,介绍组件对象模型(COM) 、ActiveX技术、数据库和异常处理的基础知识。

本书内容丰富、结构合理、重点突出、注重应用、兼顾说理性和实用性、文字通俗易懂,以适当的方法加强了对MFC重点技术核心内容的介绍,使读者可以在有限的文字篇幅情况下获得尽可能大的信息量,适合作为普通高等院校的教学及教学参考用书,也可以作为其他计算机开发应用人员的参考书。

前言

由于广大读者的抬爱及清华大学出版社的鼓励,本书有幸再版。在此首先对广大读者和出版社表示衷心的感谢。自本书第1版出版以来,作者陆续收到一些读者来信,针对这些来信,作者准备谈以下两个问题。

1. 为什么要学习MFC

作者在第1版中就说过,通过对MFC的学习,除了可以使学生掌握一种Windows应用程序设计的基本方法之外,还可以使他们进一步全面、深刻地理解面向对象程序设计的思想,从而把握程序设计方法的发展方向。对此,曾经有读者提出过疑问:Visual Basic、Delphi、C#.NET、Java不都是面向对象的吗?为什么非要学习目前看起来似乎有些落后的MFC呢?

诚然,从时间上来看,MFC是微软较早开发的Windows应用程序框架,历史比较悠久。但是,请读者要注意,历史悠久与落后绝不是同一概念。当然也不意味着只要学会了MFC就可以打遍天下,解决所有问题,但就MFC所蕴含及所展露的程序设计思想、代码实现技巧,则是其他开发工具所不及的。

作为世界上第一个应用程序框架类库的MFC,是在C++尚未完善,尚不支持某些功能的时候产生的,MFC设计者们就是使用这种当时还比较低级的C++实现了这个庞大程序框架的各种复杂功能,因此MFC的各个角落都充满了这些设计者的智慧和技巧,这些智慧和技巧都体现了当今软件工程技术的重要思想和发展方向,以至于对C++的发展和随后出现的Java、C#技术等,都产生了极为深刻的影响,甚至有些就是MFC技术的直接应用。作者认为,迄今为止还没有一个应用程序框架类库能具有如此之大的信息量,所以它是计算机专业教育和教学的绝好素材。

作者认为, 通过对MFC的学习至少可以达到如下几个目的: 一是可以学习Windows应用程序的特点(图形界面、多任务、事件驱动)、数据和函数的组织方法(资源、动态链接库)和结构(接收、分派消息的主程序模块和处理消息的消息相应程序模块)及其处理思想;二是通过MFC这个大实例,可以学习面向对象程序设计的实际方法(例如文档/视图结构的构思);三是可以学习MFC设计者们的一些巧妙的程序设计方法和技巧(例如消息映射、对象动态创建、序列化);四是可以学习Visual C++这个开发环境的使用,真可谓是一举多得。所以,作为每一个立志从事计算机工作的人来讲,不在一定程度上了解和掌握MFC将会是他的终生遗憾。

 MFC Windows应用程序设计(第2版)第2版 当然,其他开发工具也有它们各自的特点和优势,也值得学习。例如,Visual Basic作为微软开发的第一套可视化开发环境,是它把DOS程序员从汪洋大海般的Windows API函数中解救出来,为Windows应用程序的设计和发展做出了不可磨灭的贡献。但是,它使用的并不是非学不可的Basic这种非主流语言,所以对于学时极为有限和宝贵的学生来说,是否非得在校学习它就值得考虑。而使用PASCAL语言的Delphi和使用C/C++语言的C++Builder以其提供的丰富组件,在快速开发应用程序方面确实具有一定的优势,但它们与Visual Basic一样,把Windows底层封装得太严了,程序员只剩下填空的份儿,以至于使它们成了一种“傻瓜”式的开发工具,这当然不适合以教授和学习程序设计思想和设计方法为目的的学校来使用。

当然,作者也认可业界 “聪明人用Delphi,高手用VC”之类的说法,因为在实际工程中,为了满足工程期限的需要,而采用Delphi之类的快速开发工具是合理并应该的。但并不意味着学生在学校学习期间一定要拿出大量的课时去学习这些快速开发工具(工具无所谓会不会的问题,而是熟不熟的问题),因为高等学校毕竟是教育机构而不是培训机构,不但要让学生知其然也更应该让其知其所以然,从而在此基础上形成较强的软件开发(甚至是研发)能力,而不是只让学生会几门流行的技术而使学生一辈子在技术发展背后疲于奔命。

那么学习Windows SDK编程又如何呢?作者认为,用函数编程这是C程序设计课程解决的问题,学生学习了C语言之后只要肯下功夫,多实践,自学Windows SDK程序设计是完全可以的,没有必要再浪费宝贵的课时了。

也正因为上述种种原因,所以本书既不以剖析MFC源代码为主,也不以介绍Visual C++开发工具的使用为主,而是以重点介绍MFC框架的设计思想、理念和方法为基础,兼顾应用,从而使读者通过对MFC的学习,除了掌握MFC之外,还能进一步深化理解C/C++、数据结构、操作系统乃至计算机硬件的相关知识,尽快提高程序设计能力并为学习其他应用程序设计工具打下良好的基础。

2. 第2版的变化

自本书的第1版出版以来,笔者陆续接到许多读者的来信,其中既有教师也有学生和程序设计人员,在信中都在对本书褒奖之余对书的内容及编写提出了很好的意见与建议,并希望作者在有机会的条件下进行修改。在此,作者首先对这些关心本书的读者表示由衷的谢意。

综合了读者的意见之后,《MFC Windows应用程序设计(第2版)》特做如下变化:

因为本书旨在说明MFC的思想,所以只要能以模拟方式说明其思想的,本书就采用了模拟方法。显然本书第1版在消息映射的模拟和叙述上过于潦草,给一部分读者学习这部分时造成了一些不必要的困难。故此,作者在第2版中进行了必要的修改,使得这部分的介绍更为合理、清楚。

文档/视图结构是MFC应用程序框架的核心。为此,作者在第2版的第3章中适当增加了文档/视图结构程序框架各对象的创建顺序、对象之间的联系、消息的传递等内容,以期使读者对文档/视图结构及其各对象之间的关系有更清楚的认识和了解,为读者精研MFC打下一个更加良好的基础。另外,在这一章中还加强了对象动态创建的介绍。

参考读者建议,作者把第9章的内容在顺序上做了改变: 先介绍相对比较容易的CFile类,后介绍CArchive类,最后介绍文档序列化,并且加强了序列化部分的说理性。

异常及异常处理是一个健壮的应用程序必备特性,这方面的内容的缺失不能不说是第1版的一个缺憾,这次在第2版中把它补齐了。

当然,为追求内容的完整性,本书至少还应该补上MFC在网络上的应用(这也是读者的建议),但作者思虑再三后认为,作为教材本书还是不包含这部分内容为好,一是因为MFC在网络程序方面并不占优势,二是因为各个学校都是在C#.NET或Java等课程中处理该问题,如果本书包括这部分内容的话,在教学上会造成内容的重叠。

另外,正如一些读者所指出的,第14章“组件对象模型COM基础”出现在本书中显得比较生硬: 第一,组件对象模型的内容对于本科生来讲似乎是难了一些;第二,这本书讲的是MFC,而这一章讲的是ATL,确实与本书不配套。关于第一点,作者认为不是问题,学生觉得难,一是因为没有好的教材,二是学生原来接触这方面的技术比较少,但不管是什么原因,在组件应用如此广泛的今天,计算机专业特别是以软件设计为培养目标的专业不向学生讲授这方面的知识是无论如何不行的,但是,现在大多数本科学校又没有相应的课程来介绍这方面的内容,再者组件技术把抽象类的应用发挥到了淋漓尽致的程度,不学它是不会深切领会抽象类的精神实质以及它的应用的,所以本书就勉为其难地编写了这部分的入门知识。为了降低学习这部分内容的台阶,作者重写了这一章。至于第二点,生硬就生硬了吧,因为ATL在组件设计方面确实要比MFC强许多。

正如前面所讲,MFC信息量巨大,涉及到程序设计的方方面面,因此需要读者在阅读本书时不但要不断地复习C/C++的内容,还要不时地阅读其他书籍,尤其是数据结构、操作系统等。

另外,还要多找一些实例上机做实验(提供这样例题的书籍及网上资料很多). 

本书在编写过程中参考了大量的相关文献和网上的资料,并引用了其中的一些例题、文字和插图,在此对这些文献和资料的作者表示诚挚的谢意。同时也对关心本书的读者表示万分的感谢。

参加本书编写工作的有任哲、房红征、李益民、车进辉。另外,刘泰辉博士对于本书的章节及内容的安排提出的良好意见和建议,也使本书增色不少。

将信息量如此巨大的MFC在一本50万字的教学用书中进行介绍,对水平有限的作者来说实在是一件难事,所以在此恳请读者对书中的缺点和错误提出批评和指正。同时,也希望阅读本书的读者或使用本书作为教材的教师能与作者共同探讨,以期对本书作进一步的改进。欢迎读者及时与作者沟通。

目录

第1章 Windows应用程序基础知识 1

1.1 Windows应用程序的基本概念1

1.1.1 Windows应用程序的界面1

1.1.2 Windows应用程序与API函数1

1.1.3 Windows的一个特殊数据类型--句柄2

1.1.4 Windows应用程序的数据类型3

1.1.5 消息与消息循环4

1.2 Windows应用程序的结构6

1.2.1 主函数6

1.2.2 消息的处理部分--窗口函数8

1.2.3 Windows系统、主函数、窗口函数之间的关系9

1.3 用函数封装Windows程序15

1.4 窗口函数的另一种结构19

小结22

练习题22

思考题23

第2章 Windows应用程序的类封装25

2.1 应用程序主函数的C++类封装25

2.1.1 窗口类的声明26

2.1.2 应用程序类的声明27

2.1.3 主函数封装后的程序28

2.2 派生类的应用32

2.2.1 应用程序类的派生类33

2.2.2 窗口类的派生类35

2.3 窗口函数的封装--消息映射39

2.3.1 消息处理函数的简单封装40    2.3.2 消息映射42

2.3.3 消息映射表的声明和实现45

小结48

练习题48

思考题49

 MFC Windows应用程序设计(第2版) 第3章 MFC应用程序框架51

3.1 早期的应用程序框架及其MFC类51

3.1.1 早期的应用程序框架51

3.1.2 MFC的窗口类52

3.1.3 CWinApp类53

3.2 最简单的MFC程序实例54

3.2.1 程序的编写54

3.2.2 程序主函数的代码56

3.3 应用程序的文档/视图结构57

3.3.1 文档/视图结构的基本概念57

3.3.2 单文档界面和多文档界面结构59

3.4 文档类CDocument的派生类60

3.5 视图类CView的派生类61

3.6 窗口框架类CFrameWnd的派生类62

3.7 文档模板类CDocTemplate 64

3.8 应用程序类的派生类65

3.8.1 应用程序类派生类的代码65

3.8.2 程序员的主要工作66

3.9 MFC文档/视图应用程序框架中各个对象的关系67

3.9.1 应用程序各对象创建的顺序67

3.9.2 应用程序各对象之间的联系68

3.9.3 文档/视图应用程序消息的传递71

3.10 对象的动态创建71

3.10.1 问题的提出与解决71

3.10.2 类信息表及其声明和实现76

3.10.3 对象类信息表的提取77

小结78

练习题78

思考题78

第4章 图形79

4.1 DC和GDI79

4.1.1 设备描述环境79

4.1.2 Windows的GDI80

4.2 CDC类80

4.3 CPen类82

4.4 CBrush类85

4.5 绘图模式87

4.6 文本和CFont类88

4.6.1 显示文本88

4.6.2 字体和CFont类91

4.7 CDC的其他派生类93

4.7.1 窗口用户区设备描述环境CClientDC类93

4.7.2 图元文件设备描述环境CMetaFileDC类94

小结96

练习题96

思考题96

第5章 MFC的通用类97

5.1 简单数据类97

5.1.1 点类CPoint97

5.1.2 矩形类CRect98

5.1.3 尺寸类CSize98

5.1.4 字符串类CString99

5.2 群体数据类100

5.3 数据在文档/视图结构程序中的位置102

小结104

练习题104

思考题104

第6章 Windows应用程序界面的设计105

6.1 SDI和MDI界面105

6.2 SDI界面窗口的样式106

6.2.1 在MFC AppWizard中确定窗口样式106

6.2.2 在函数PreCreateWindow中修改窗口的样式107

6.2.3 可拆分为小窗口的SDI界面111

6.3 拆分窗口的同步更新及更新效率112

6.3.1 拆分窗口的同步更新112

6.3.2 提高拆分窗口更新效率的方法112

6.4 创建带有滚动条的窗口117

小结121

练习题121

思考题122

第7章 鼠标和键盘123

7.1 处理鼠标消息123

7.1.1 用户区鼠标消息124

7.1.2 非用户区鼠标消息128

7.1.3 鼠标消息的捕获129

7.2 处理键盘消息130

7.2.1 按键的虚拟码130

7.2.2 一般按键消息133

7.2.3 系统按键消息134

7.3 应用程序窗口的焦点135

小结136

练习题 137

思考题138

第8章 资源139

8.1 资源和资源文件139

8.1.1 什么是资源139

8.1.2 资源头文件140

8.1.3 资源描述文件141

8.2 菜单141

8.2.1 资源描述文件的菜单部分141

8.2.2 编辑现有的菜单143

8.2.3 自定义菜单146

8.2.4 用菜单编辑器编辑菜单148

8.2.5 菜单命令选项的动态修改148

8.3 快捷键表151

8.3.1 资源描述文件的快捷键表部分151

8.3.2 使用快捷键编辑器编辑快捷键表152

8.4 图标152

8.4.1 制作图标152

8.4.2 资源描述文件的图标部分153

8.5 位图154

8.5.1 资源描述文件的位图部分154

8.5.2 位图资源的使用154

小结157

练习题158

思考题158

第9章 MFC的文件处理机制159

9.1 CFile类159

9.1.1 CFile类常用成员函数159

9.1.2 文件的创建与打开159

9.1.3 文件的读写161

9.1.4 CFile的派生类CMemFile165

9.1.5 CFileFind类166

9.2 CArchive类167

9.2.1 插入符和提取符的重载167

9.2.2 CArchive类对象与CFile类对象的关联168

9.3 对象的序列化170

9.3.1 序列化的基本概念170

9.3.2 MFC的Serialize函数171

9.3.3 MFC应用程序的序列化过程173

9.3.4 序列化的顺序174

9.4 宏DECLARE_SERIAL和IMPLEMENT_SERIAL177

9.5 MFC文件命令的默认处理流程182

9.5.1 应用程序启动后文档的初始化流程182

9.5.2 应用程序菜单命令的默认处理182

小结183

练习题183

思考题183

第10章 控件185

10.1 标准控件及其使用185

10.1.1 标准控件186

10.1.2 静态文本控件186

10.1.3 按钮控件188

10.1.4 编辑控件192

10.2 通用控件194

10.2.1 进度条控件194

10.2.2 微调器控件195

10.2.3 图像列表控件199

10.2.4 列表视图控件200

10.3 控件的背景颜色208

小结210

练习题211

第11章 对话框213

11.1 对话框模板资源描述文件213

11.2 自定义对话框类215

11.2.1 MFC的对话框类及用户自定义对话框类216

11.2.2 模态对话框217

11.3 对话框的数据交换和数据检验221

11.3.1 数据交换221

11.3.2 使用Class Wizard为对话框添加成员变量223

11.3.3 数据检验225

11.4 以对话框为主界面的应用程序225

11.4.1 应用程序框架的设计226

11.4.2 应用程序代码的设计226

11.5 MFC预置的通用对话框228

11.5.1 文件对话框228

11.5.2 字体选择对话框230

11.6 非模态对话框233

11.7 属性页235

小结238

练习题239

思考题239

第12章 进程与线程的管理241

12.1 进程、线程及其优先权241

12.1.1 进程、线程的基本概念241

12.1.2 进程和线程的优先级241

12.2 工作线程和用户界面线程243

12.2.1 工作线程的创建243

12.2.2 用户界面线程的创建244

12.3 线程同步246

12.3.1 线程同步的基本概念246

12.3.2 事件247

12.3.3 临界段251

12.3.4 互斥体253

12.3.5 信号量254

12.4 线程通信256

12.4.1 利用全局变量进行通信257

12.4.2 利用自定义的消息进行通信258

小结259

练习题 260

第13章 动态链接库及其使用261

13.1 链接库261

13.1.1 静态链接库261

13.1.2 动态链接库263

13.2 动态链接库的创建265

13.2.1 导出函数的声明265

13.2.2 用MFC编写DLL268

13.3 动态链接库的使用271

13.3.1 隐式链接方式271

13.3.2 显式链接方式272

小结273

练习题274

思考题274

第14章 组件对象模型基础275

14.1 组件对象模型概述275

14.1.1 软件模块化的发展历程275

14.1.2 组件对象模型283

14.1.3 COM术语283

14.2 组件类、接口的标识及注册284

14.3 COM规定的标准服务285

14.3.1 接口IUnknown 285

14.3.2 接口IClassFactory和IDispatch289

14.4 COM接口的二进制标准及IDL语言291

14.5 使用ATL设计组件291

14.5.1 ATL对COM的支持291

14.5.2 使用ATL设计组件的步骤和方法292

14.5.3 浏览ATL生成的代码295

14.6 组件的包含与聚合298

14.6.1 包含298

14.6.2 聚合299

小结299

练习题300

思考题300

第15章 ActiveX应用基础301

15.1 ActiveX技术概述301

15.1.1 ActiveX的前身--OLE301

15.1.2 ActiveX技术的缘起303

15.1.3 ActiveX自动化303

15.1.4 ActiveX控件304

15.1.5 ActiveX文档305

15.1.6 ActiveX文档与ActiveX控件的区别305

15.2 用MFC设计ActiveX容器306

15.2.1 ActiveX容器的结构306

15.2.2 用MFC设计ActiveX容器306

15.3 用MFC设计ActiveX服务器309

15.4 用MFC设计ActiveX自动化应用程序310

15.4.1 用MFC设计ActiveX自动化服务器310

15.4.2 用MFC设计ActiveX自动化客户313

15.5 用MFC设计ActiveX控件315

小结318

练习题319

第16章 用MFC设计数据库应用程序321

16.1 数据库系统及数据库应用程序321

16.1.1 数据库系统321

16.1.2 数据库应用系统的设计322

16.2 ODBC的基本构成322

16.3 配置ODBC数据源323

16.3.1 ODBC管理器324

16.3.2 配置ODBC数据源的方法和步骤324

16.4 MFC的ODBC类326

16.4.1 CDatabase类327

16.4.2 CRecordset类328

16.4.3 CDBException类332

16.5 ODBC应用程序实例333

16.5.1 显示和处理表中的数据333

16.5.2 连接两个表338

16.6 使用DAO设计数据库应用程序简介339

16.6.1 DAO简介339

16.6.2 DAO和MFC339

16.6.3 使用MFC DAO类编程340

小结341

练习题341

第17章 异常和异常处理343

17.1 异常处理的基本思想343

17.2 异常对象346

17.3 MFC的异常类348

17.3.1 CException类348

17.3.2 CException类的子类348

小结349

练习题350

附录A 数据类型与Windows句柄351

附录B 标识符的匈牙利记法355

附录C MFC的消息映射357

附录D 文档/视图框架的补充内容363

附录E 多文档/视图框架的一个实例369

附录F 类信息表与CObject类375

附录G Visual C++中文件类型小结379

参考文献381

                ⅩVII    ⅩVIII    ⅩⅨ 现代微型计算机与接口教程(第2版) 第3章 微型计算机输入输出接口

3.1 输入输出接口

3.1.1 外部设备及其信号

3.1.2 I/O接口的功能

3.1.3 I/O端口的编址方法

3.1.4 简单I/O接口的组成

3.2 输入输出数据传输的控制方式

3.2.1 程序方式

3.2.2 中断方式

3.2.3 直接存储器存取方式

3.3 开关量输入输出接口

3.3.1 开关量输入接口

3.3.2 开关量输出接口

习题3

第4章 微型计算机的中断系统

4.1 中断原理

4.1.1 中断的基本概念

4.1.2 中断工作方式的特点

4.1.3 中断管理

4.1.4 中断过程

4.2 8086 CPU中断系统

4.2.1 8086的中断类型

4.2.2 8086的中断向量表

4.2.3 8086对外部中断的响应

4.3 可编程中断控制器8259A

4.3.1 8259A的基本功能

4.3.2 8259A引脚及内部结构

4.3.3 8259A的工作方式

4.3.4 8259A的编程

4.4 中断方式输入输出

4.4.1 中断方式I/O接口

4.4.2 中断方式输入输出程序设计

4.4.3 中断方式应用

习题4

第5章 可编程接口芯片

5.1 可编程并行接口8255A

5.1.1 8255A的内部结构与外部引脚

5.1.2 8255A的控制字

5.1.3 8255A的工作方式

5.1.4 8255A的应用

5.2 可编程计时器/计数器8254

5.2.1 8254的内部结构与外部引脚

5.2.2 8254的工作方式

5.2.3 8254的控制字与初始化

5.2.4 8254的应用

5.3 串行通信的基本概念

5.3.1 串行数据通信

5.3.2 串行通信的方式

5.3.3 串行通信接口

5.3.4 RS-232-C标准

5.4 可编程串行通信接口16550

5.4.1 16550的内部组成与外部引脚

5.4.2 16550的内部寄存器

5.4.3 串行通信接口16550的应用

5.5 可编程串行通信接口8251A

5.5.1 8251A的外部引脚

5.5.2 8251A的内部寄存器

5.5.3 8251A的编程

习题5

第6章 DMA传输

6.1 DMA传输原理

6.2 DMA控制器8237A

6.2.1 8237A的基本功能

6.2.2 8237A的内部结构和外部连接

6.2.3 8237A的对外连接信号

6.2.4 8237A的工作时序

6.3 8237A的编程使用

6.3.1 8237A通道专用寄存器

6.3.2 8237A通道公用寄存器

6.3.3 8237A端口地址及通道分配

6.3.4 8237A的编程

习题6

第7章 数模转换与模数转换

7.1 数模转换

7.1.1 数模转换原理

7.1.2 数模转换芯片--DAC0832

7.2 模数转换

7.2.1 信号变换中的采样、量化和编码

7.2.2 模数转换原理

7.2.3 模数转换器的主要技术指标

7.3 典型模数转换器芯片

7.3.1 ADC0809 

7.3.2 AD574A

7.4 数据采集系统

7.4.1 工控PC简介

7.4.2 PCL818多功能接口卡简介

7.4.3 软件设计

习题7

第8章 现代微型计算机

8.1 80x86系列微处理器

8.1.1 16位80x86微处理器

8.1.2 32位80x86微处理器

8.1.3 Pentium系列微处理器

8.1.4 32位微处理器的寄存器

8.1.5 32位微处理器的工作方式

8.1.6 64位微处理器

8.2 微型计算机体系结构

8.2.1 80x86微型计算机结构

8.2.2 Pentium系列微型计算机结构

8.2.3 Intel系列芯片组

8.3 存储管理技术

8.3.1 高速缓存技术

8.3.2 虚拟存储技术

8.4 多任务管理与I/O管理

8.4.1 多任务管理

8.4.2 I/O管理

8.5 现代微型计算机中断系统

8.5.1 保护方式下的中断管理

8.5.2 I/O控制中心的中断管理功能

8.5.3 APIC中断

习题8

第9章 PC系列微型计算机外部设备接口

9.1 键盘、鼠标与打印机接口

9.1.1 键盘

9.1.2 鼠标

9.1.3 打印机接口

9.2 软盘和硬盘驱动器接口

9.2.1 软盘驱动器和接口标准

9.2.2 硬盘驱动器和接口标准

9.2.3 现代硬盘接口技术

9.3 显示器和显示接口

9.3.1 显示器

9.3.2 显示器接口

9.3.3 显示接口组成

9.3.4 显卡总线类型

9.4 声卡及其接口

9.5 1394接口

9.5.1 IEEE 1394总线的特点

9.5.2 IEEE 1394总线工作方式

9.5.3 IEEE 1394接口类型

9.5.4 IEEE 1394接口与USB接口比较

习题9

第10章 微型计算机总线

10.1 总线技术概述

10.1.1 总线的标准

10.1.2 总线的指标

10.1.3 总线的分类

10.1.4 总线的数据传输

10.2 ISA总线

10.2.1 ISA总线的信号

10.2.2 ISA总线扩展卡

10.3 PCI总线与PCI-Express总线

10.3.1 PCI的特点

10.3.2 PCI总线系统结构

10.3.3 PCI总线信号

10.3.4 PCI总线周期和地址空间

10.3.5 PCI配置空间

10.3.6 PCI总线设备开发及S5933

10.3.7 PCI-Express总线

10.4 USB总线

10.4.1 概述

10.4.2 USB 总线的构成

10.4.3 USB事务与USB帧

10.4.4 批量传输、中断传输和实时传输

10.4.5 控制传输

10.4.6 USB设备的检测和配置

10.4.7 USB控制器

习题10

第11章 Windows环境下输入输出程序设计

11.1 Windows设备驱动程序

11.1.1 虚拟设备

11.1.2 Windows 9x设备驱动程序

11.1.3 Windows 2000设备驱动程序

11.2 WDM驱动程序

11.2.1 WDM驱动程序模型和层次结构

11.2.2 WDM驱动程序开发工具

11.2.3 DriverStudio中的WDM驱动程序结构

11.3 Windows 2000和Windows XP环境下输入输出的实现

11.3.1 用于输入输出的Win32 API函数

11.3.2 Windows 2000和Windows XP环境下输入输出举例

习题11附录A 标准ASCII码字符表

附录B 80x86指令系统

附录C DOS功能调用

附录D BIOS功能调用

参考文献

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个