Windows程序设计

Windows程序设计
作 者: 管建和 夏军宝
出版社: 人民邮电出版社
丛编项: 高等学校计算机专业教材
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 窗口软件 程序设计 高等学校 教材
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《Windows程序设计》作者简介

内容简介

本书全面介绍Windows操作系统环境下应用程序的开发技术,以Visual C++开发工具作为主线,讲解Windows应用已成熟的基本编程技术。全书共分十二章,第1章介绍Windows编程基础知识;第2章介绍Windows 窗口命令实现技术;第3章介绍对话框与标准控件的实现技术;第4章介绍ActiveX控件的实现和应用技术;第5章介绍Visual C++文档/视结构; 第6章介绍图形设备接口GDI;第7章介绍位图编程技术;第8章介绍多线程编程技术;第9章介绍MFC通用类知识;第10章介绍静态库和动态链接库的创建和使用;第11章介绍打印和打印预览功能的实现;第12章简介数据库和Internet编程技术。读者通过本书学习,能够迅速地掌握Windows的基本编程方法。本书可作为本科生、研究生学习Windows程序设计的教程,也可作为开发人员的技术参考书。

图书目录

第1章

Windows程序设计基础

必须了解的东西

11.1.1

Windows产品概述

11.1.2

开发工具Visual

C++

11.1.3

Windows资料来源——MSDN

21.1.4

Win32

API简介

用Visual

C++的基本用法

21.2.1

应用程序的类型

31.2.2

第一个控制台应用程序

31.2.3

API函数的调用方法

本书推荐的编程环境

代码的风格

61.4.1

变量的命名

61.4.2

代码的对齐方式

71.4.3

代码的注释

8第2章

Win32程序运行原理

CPU的保护模式和Windows系统

92.1.1

Windows的多任务实现

92.1.2

虚拟内存

92.1.3

内核模式和用户模式

内核对象

112.2.1

内核对象的引出

112.2.2

对象句柄

122.2.3

使用计数

进程的创建

122.3.1

进程(Process)和线程(Thread)

122.3.2

应用程序的启动过程

132.3.3

CreateProcess函数

142.3.4

创建进程的例子

进程控制

182.4.1

获取系统进程

182.4.2

终止当前进程

202.4.3

终止其他进程

212.4.4

保护进程

【实例】游戏内存修改器

232.5.1

实现原理

232.5.2

编写测试程序

252.5.3

搜索内存

252.5.4

写进程空间

282.5.5

提炼接口

28第3章

Win32程序的执行单元

多线程

303.1.1

线程的创建

303.1.2

线程内核对象

333.1.3

线程的终止

363.1.4

线程的优先级

373.1.5

C/C++运行期库

线程同步

413.2.1

临界区对象

413.2.2

互锁函数

443.2.3

事件内核对象

453.2.4

线程局部存储(TLS)

设计自己的线程局部存储

503.3.1

CSimpleList类

513.3.2

CNoTrackObject类

573.3.3

CThreadSlotData类

583.3.4

CThreadLocal类模板

设计线程类——CWinThread

【实例】多线程文件搜索器

803.5.1

搜索文件的基本知识

813.5.2

编程思路

83第4章

Windows图形界面

了解窗口

第一个窗口程序

914.2.1

创建Win32工程和MessageBox函数

914.2.2

Windows的消息驱动

934.2.3

创建窗口

944.2.4

分析主程序代码

964.2.5

处理消息的代码

一个“简陋”的打字程序

1024.3.1

使用资源

1024.3.2

菜单和图标

1044.3.3

接收键盘输入

1054.3.4

接收鼠标输入

1084.3.5

设置文本颜色和背景色

GDI基本图形

1094.4.1

设备环境(Device

Context)

1094.4.2

Windows的颜色和像素点

1124.4.3

绘制线条

1134.4.4

绘制区域

1174.4.5

坐标系统

【实例】小时钟

1224.5.1

基础知识——定时器和系统时间

1224.5.2

时钟程序

1254.5.3

移动窗口

1294.5.4

使用快捷菜单

130第5章

框架管理基础

运行时类信息(CRuntimeClass类)

1345.1.1

动态类型识别和动态创建

1345.1.2

DECLARE_DYNAMIC等宏的定义

调试支持

1415.2.1

基本调试方法

1415.2.2

调试输出

1425.2.3

跟踪和断言

框架程序中的映射

1445.3.1

映射的概念

1445.3.2

内存分配方式

1455.3.3

设计管理方式

1485.3.4

句柄映射的实现

框架程序的状态信息

1565.4.1

模块的概念

1565.4.2

模块、线程的状态

框架程序的执行顺序

1595.5.1

线程的生命周期

1595.5.2

程序的初始化过程

1625.5.3

框架程序应用举例

165第6章

框架中的窗口

CWnd类的引出

窗口句柄映射

1676.2.1

向CWnd对象分发消息

1676.2.2

消息的传递方式

创建窗口

1726.3.1

窗口函数

1726.3.2

注册窗口类

1736.3.3

消息钩子

1756.3.4

最终实现

1806.3.5

创建窗口的例子

消息映射

1846.4.1

消息映射表

1846.4.2

DECLARE_MESSAGE_MAP等宏的定义

消息处理

1896.5.1

使用消息映射宏

1896.5.2

消息的分发机制

1926.5.3

消息映射应用举例

使用Microsoft基础类库

【实例】窗口查看器

2016.7.1

窗口界面

2016.7.2

获取目标窗口的信息

2066.7.3

自制按钮

210第7章

用户界面设计

对话框与子窗口控件基础

2147.1.1

子窗口控件运行原理

2147.1.2

对话框工作原理

使用对话框和控件与用户交互

2197.2.1

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

2197.2.2

常用子窗口控件

2237.2.3

对话框与控件的颜色

通用控件

2257.3.1

通用控件简介

2257.3.2

使用通用控件

2267.3.3

使用状态栏

2307.3.4

使用列表视图

2317.3.5

使用进度条

通用对话框

2357.4.1

“打开”文件和“保存”文件对话框

2357.4.2

浏览目录对话框

使用框架程序简化界面开发

2397.5.1

在框架程序中使用对话框

2397.5.2

CDialog类

2427.5.3

框架程序中的控件

2447.5.4

使用向导

【实例】目录监视器

2467.6.1

目录监视的基础知识

2477.6.2

实例程序

2477.6.3

使用SkinMagic美化界面

254第8章

Windows文件操作和内存映射文件

文件操作

2568.1.1

创建和读写文件

2568.1.2

获取文件信息

2608.1.3

常用文件操作

2628.1.4

检查PE文件有效性的例子

2648.1.5

MFC的支持(CFile类)

驱动器和目录

2688.2.1

驱动器操作

2688.2.2

目录操作

使用注册表

2718.3.1

注册表的结构

2718.3.2

管理注册表

2728.3.3

注册表API应用举例(设置开机自动启动)

2748.3.4

ATL库的支持(CRegKey类)

内存映射文件

2768.4.1

内存映射文件相关函数

2768.4.2

使用内存映射文件读BMP文件的例子

2788.4.3

进程间共享内存

2848.4.4

封装共享内存类CShareMemory

一个文件切割系统的实现

2878.5.1

通信机制

2878.5.2

分割合并机制

2888.5.3

接口函数

2928.5.4

最终实现

【实例】文件切割器开发实例

298第9章

动态链接库和钩子

动态链接库

3069.1.1

动态链接库的概念

3069.1.2

创建动态链接库工程

3069.1.3

动态链接库中的函数

3089.1.4

使用导出函数

Windows钩子

3129.2.1

钩子的概念

3129.2.2

钩子的安装与卸载

3129.2.3

键盘钩子实例

挂钩API技术(HOOK

API)

3199.3.1

实现原理

3199.3.2

使用钩子注入DLL

3199.3.3

HOOK过程

3209.3.4

封装CAPIHook类

3259.3.5

HOOK实例——进程保护器

其他常用的侦测方法

3369.4.1

使用注册表注入DLL

3369.4.2

使用远程线程注入DLL

3379.4.3

通过覆盖代码挂钩API

【实例】用户模式下侦测Win32

API的例子

346第10章

TCP/IP和网络通信

网络基础知识

35110.1.1

以太网(Ethernet)

35110.1.2

以太网接口堆栈

35310.1.3

服务器/客户机模型

Winsock接口

35410.2.1

套节字(Socket)的概念和类型

35410.2.2

Winsock的寻址方式和字节顺序

35410.2.3

Winsock编程流程

35610.2.4

典型过程图

35910.2.5

服务器和客户方程序举例

36010.2.6

UDP协议编程

网络程序实际应用

36410.3.1

设置I/O模式

36410.3.2

TCP服务器实例

36510.3.3

TCP客户端实例

截拦网络数据

37710.4.1

DLL工程框架

37810.4.2

数据交换机制

37910.4.3

数据的过滤

【实例】IP封包截获工具IPPack源代码分析

38110.5.1

主窗口界面

38210.5.2

注入DLL

38510.5.3

处理封包

389第11章

内核模式程序设计与Windows防火墙开发

Windows操作系统的体系结构

39311.1.1

Windows

2000/XP组件结构图

39311.1.2

环境子系统和子系统DLL

39411.1.3

系统核心(core)

39511.1.4

设备驱动程序

服务

39811.2.1

服务控制管理器(Service

Control

Manager)

39811.2.2

服务控制程序(Service

Control

Program)

39911.2.3

封装CDriver类

开发内核驱动的准备工作

40611.3.1

驱动程序开发工具箱(Driver

Development

Kit,DDK)

40711.3.2

编译和连接内核模式驱动的方法

40711.3.3

创建第一个驱动程序

内核模式程序设计基础知识

40811.4.1

UNICODE字符串

40811.4.2

设备对象

40911.4.3

驱动程序的基本组成

41011.4.4

I/O请求包(I/O

request

packet,IRP)和I/O堆栈

41011.4.5

完整驱动程序

内核模式与用户模式交互

41611.5.1

扩展派遣接口

41611.5.2

IOCTL应用举例

IP过滤钩子驱动

42111.6.1

创建过滤钩子(Filter-hook)驱动

42111.6.2

IP过滤钩子驱动工程框架

42411.6.3

过滤列表

42711.6.4

编写过滤函数

42811.6.5

注册钩子回调函数

43011.6.6

处理IOCTL设备控制代码

【实例】防火墙开发实例

43311.7.1

文档视图

43311.7.2

文档对象

43611.7.3

视图对象

43811.7.4

主窗口对象

440附录

MFC结构体系图