程序设计(第2版)
分類: 图书,计算机与互联网,操作系统,Microsoft Windows,Windows 编程开发,
品牌: 王艳平
基本信息·出版社:人民邮电出版社
·页码:471 页
·出版日期:2008年
·ISBN:9787115172327
·条形码:9787115172327
·包装版本:2版
·装帧:平装
·开本:16
·正文语种:中文
产品信息有问题吗?请帮我们更新产品信息。
内容简介本书编写的目的是为学习Windows编程的读者提供一个良好的学习方法,循序渐进,最终使他们有能力独立开发出像Windows防火墙一样复杂的应用程序。本书首先介绍了Win32程序运行原理和最基本的Win32 API编程;然后通过模拟MFC中关键类、全局函数和宏定义的实现,详细讲述了框架程序的设计方法和MFC的内部工作机制,并指出了这些机制是如何对用户程序造成影响的;完整讲述了开发内核驱动和Windows防火墙的过程;最后给出图像处理的基本开发方法。
目录
第1章Windows程序设计基础1
1.1必须了解的内容1
1.1.1Windows产品概述1
1.1.2开发工具Visual C++1
1.1.3Windows资料来源——MSDN2
1.1.4Win32 API简介2
1.2VC++的基本使用2
1.2.1应用程序的类型3
1.2.2第一个控制台应用程序3
1.2.3API函数的调用方法4
1.3本书推荐的编程环境5
1.4代码的风格6
1.4.1变量的命名6
1.4.2代码的对齐方式7
1.4.3代码的注释8
第2章Win32程序运行原理9
2.1CPU的保护模式和Windows系统9
2.1.1Windows的多任务实现9
2.1.2虚拟内存9
2.1.3内核模式和用户模式10
2.2内核对象11
2.2.1内核对象的引出11
2.2.2对象句柄12
2.2.3使用计数12
2.3进程的创建12
2.3.1进程(Process)和线程(Thread)12
2.3.2应用程序的启动过程13
2.3.3CreateProcess函数14
2.3.4创建进程的例子17
2.4进程控制18
2.4.1获取系统进程18
2.4.2终止当前进程20
2.4.3终止其他进程21
2.4.4保护进程22
2.5【实例】游戏内存修改器23
2.5.1实现原理23
2.5.2编写测试程序25
2.5.3搜索内存25
2.5.4写进程空间28
2.5.5提炼接口28
第3章Win32程序的执行单元30
3.1多线程30
3.1.1线程的创建30
3.1.2线程内核对象33
3.1.3线程的终止36
3.1.4线程的优先级37
3.1.5C/C++运行期库40
3.2 线程同步41
3.2.1临界区对象41
3.2.2互锁函数44
3.2.3事件内核对象45
3.2.4信号量内核对象47
3.2.5互斥内核对象50
3.2.6线程局部存储52
3.3设计自己的线程局部存储55
3.3.1CSimpleList类56
3.3.2CNoTrackObject类61
3.3.3CThreadSlotData类63
3.3.4CThreadLocal类模板72
3.4设计线程类——CWinThread76
3.5【实例】多线程文件搜索器85
3.5.1搜索文件的基本知识85
3.5.2编程思路87
第4章Windows图形界面94
4.1了解窗口94
4.2第一个窗口程序95
4.2.1创建Win32工程和MessageBox函数95
4.2.2Windows的消息驱动97
4.2.3创建窗口98
4.2.4分析主程序代码100
4.2.5处理消息的代码104
4.3一个“简陋”的打字程序106
4.3.1使用资源106
4.3.2菜单和图标108
4.3.3接收键盘输入109
4.3.4接收鼠标输入112
4.3.5设置文本颜色和背景色113
4.4GDI基本图形113
4.4.1设备环境113
4.4.2Windows的颜色和像素点116
4.4.3绘制线条117
4.4.4绘制区域121
4.4.5坐标系统122
4.5Windows内存DC126
4.6【实例】小时钟127
4.6.1基础知识——定时器和系统时间127
4.6.2时钟程序130
4.6.3移动窗口134
4.6.4使用快捷菜单135
第5章框架管理基础139
5.1运行时类信息(CRuntimeClass类)139
5.1.1动态类型识别和动态创建139
5.1.2DECLARE_DYNAMIC等宏的定义144
5.2调试支持146
5.2.1基本调试方法146
5.2.2调试输出147
5.2.3跟踪和断言148
5.3框架程序中的映射149
5.3.1映射的概念149
5.3.2内存分配方式150
5.3.3设计管理方式153
5.3.4句柄映射的实现160
5.4框架程序的状态信息161
5.4.1模块的概念161
5.4.2模块、线程的状态162
5.5框架程序的执行顺序164
5.5.1线程的生命周期164
5.5.2程序的初始化过程167
5.5.3框架程序应用举例170
第6章框架中的窗口171
6.1CWnd类的引出171
6.2窗口句柄映射172
6.2.1向CWnd对象分发消息172
6.2.2消息的传递方式175
6.3创建窗口177
6.3.1窗口函数177
6.3.2注册窗口类178
6.3.3消息钩子180
6.3.4最终实现185
6.3.5创建窗口的例子187
6.4消息映射189
6.4.1消息映射表189
6.4.2DECLARE_MESSAGE_MAP等宏的定义192
6.5消息处理194
6.5.1使用消息映射宏194
6.5.2消息的分发机制197
6.5.3消息映射应用举例200
6.6使用Microsoft基础类库204
6.7【实例】窗口查看器206
6.7.1窗口界面206
6.7.2获取目标窗口的信息211
6.7.3自制按钮215
第7章用户界面设计219
7.1对话框与子窗口控件基础219
7.1.1子窗口控件运行原理219
7.1.2对话框工作原理222
7.2使用对话框和控件与用户交互224
7.2.1以对话框为主界面的应用程序224
7.2.2常用子窗口控件228
7.2.3对话框与控件的颜色229
7.3通用控件230
7.3.1通用控件简介230
7.3.2使用通用控件231
7.3.3使用状态栏235
7.3.4使用列表视图238
7.3.5使用进度条239
7.4通用对话框241
7.4.1“打开”文件和“保存”文件对话框241
7.4.2浏览目录对话框243
7.5使用框架程序简化界面开发245
7.5.1在框架程序中使用对话框245
7.5.2CDialog类248
7.5.3框架程序中的控件250
7.5.4使用向导250
7.6【实例】目录监视器252
7.6.1目录监视的基础知识253
7.6.2实例程序253
7.6.3使用SkinMagic美化界面259
7.7窗口进程监视器261
第8章Windows文件操作和内存映射文件264
8.1文件操作264
8.1.1创建和读写文件264
8.1.2获取文件信息268
8.1.3常用文件操作270
8.1.4检查PE文件有效性的例子272
8.1.5MFC的支持(CFile类)274
8.2驱动器和目录276
8.2.1驱动器操作276
8.2.2目录操作279
8.3使用注册表279
8.3.1注册表的结构279
8.3.2管理注册表280
8.3.3注册表API应用举例(设置开机自动启动)282
8.3.4ATL库的支持(CRegKey类)283
8.4内存映射文件284
8.4.1内存映射文件相关函数284
8.4.2使用内存映射文件读BMP文件的例子286
8.4.3进程间共享内存292
8.4.4封装共享内存类CShareMemory294
8.5一个文件切割系统的实现295
8.5.1通信机制295
8.5.2分割合并机制296
8.5.3接口函数300
8.5.4最终实现301
8.6【实例】文件切割器开发实例306
第9章动态链接库和钩子314
9.1动态链接库314
9.1.1动态链接库的概念314
9.1.2创建动态链接库工程314
9.1.3动态链接库中的函数316
9.1.4使用导出函数317
9.2Windows钩子320
9.2.1钩子的概念320
9.2.2钩子的安装与卸载320
9.2.3键盘钩子实例322
9.3挂钩API技术(HOOK API)327
9.3.1实现原理327
9.3.2使用钩子注入DLL327
9.3.3HOOK过程328
9.3.4封装CAPIHook类333
9.3.5HOOK实例——进程保护器340
9.4其他常用的侦测方法344
9.4.1使用注册表注入DLL344
9.4.2使用远程线程注入DLL345
9.4.3通过覆盖代码挂钩API351
9.5【实例】用户模式下侦测Win32 API的例子354
第10章TCP/IP和网络通信359
10.1网络基础知识359
10.1.1TCP/IP参考模型359
10.1.2以太网361
10.1.3以太网接口堆栈363
10.1.4服务器/客户机模型363
10.2Winsock接口364
10.2.1套节字的概念和类型364
10.2.2Winsock的寻址方式和字节顺序364
10.2.3Winsock编程流程366
10.2.4典型过程图371
10.2.5服务器和客户方程序举例371
10.2.6UDP协议编程374
10.3网络程序实际应用374
10.3.1设置I/O模式375
10.3.2TCP服务器实例376
10.3.3TCP客户端实例384
10.4截拦网络数据388
10.4.1DLL工程框架388
10.4.2数据交换机制389
10.4.3数据的过滤391
10.5【实例】IP封包截获工具IPPack源代码分析392
10.5.1主窗口界面392
10.5.2注入DLL395
10.5.3处理封包399
第11章内核模式程序设计与 Windows防火墙开发403
11.1Windows操作系统的体系结构403
11.1.1Windows 2000/XP组件结构图403
11.1.2环境子系统和子系统DLL404
11.1.3系统核心405
11.1.4设备驱动程序408
11.2服务408
11.2.1服务控制管理器(Service Control Manager)408
11.2.2服务控制程序409
11.2.3封装CDriver类412
11.3开发内核驱动的准备工作417
11.3.1驱动程序开发工具箱417
11.3.2编译和连接内核模式驱动的方法417
11.3.3创建第一个驱动程序418
11.4内核模式程序设计基础知识418
11.4.1UNICODE字符串418
11.4.2设备对象419
11.4.3驱动程序的基本组成420
11.4.4I/O请求包和I/O堆栈420
11.4.5完整驱动程序423
11.5内核模式与用户模式交互426
11.5.1扩展派遣接口426
11.5.2IOCTL应用举例427
11.6IP过滤钩子驱动431
11.6.1创建过滤钩子(Filter-hook)驱动431
11.6.2IP过滤钩子驱动工程框架434
11.6.3过滤列表437
11.6.4编写过滤函数438
11.6.5注册钩子回调函数440
11.6.6处理IOCTL设备控制代码442
11.7【实例】防火墙开发实例443
11.7.1文档视图443
11.7.2文档对象446
11.7.3视图对象448
11.7.4主窗口对象450
第12章Windows数字图像处理454
12.1编程基础454
12.2CVector2D类455
12.3CGray类的设计458
12.3.1图像的加载和保存460
12.3.2创建新位图464
12.3.3设置和获取位图像素值466
12.3.4绘制矩形和直线470
……[看更多目录]