标题：VisualC++6.0完全自学宝典
图书信息
出版社: 清华大学出版社; 第1版 (2008年7月1日)
丛书名: 程序员完全自学宝典
平装: 610页
正文语种: 简体中文
开本: 16
ISBN: 9787302175964
条形码: 9787302175964
尺寸: 26.2 x 20.2 x 2.8 cm
重量: 1.1 Kg
内容简介
《VisualC++6.0完全自学宝典》由浅入深地介绍使用VisualC++6.0进行Windows应用程序开发的一般过程和方法，既包含相关的理论讲解，又安排相应的实例作为补充，以期从理论和实践两个方面帮助读者了解相关的知识，并掌握相关的技能。
全书分为5篇，其中第1篇介绍使用VisualC++6.0进行Windows应用程序开发所应该具备的基础知识。第2篇和第3篇是《VisualC++6.0完全自学宝典》的主要内容，分别介绍常见的应用程序开发和高级的应用程序开发。第4篇作为补充性的内容，介绍VisualC++6.0常用的数据结构，此外还介绍常用的调试技巧和编程技巧等。最后一篇是实例篇，通过一个非常完整的实例，复习前面所学知识，并锻炼读者的动手和思考能力。
与同类书籍相比，《VisualC++6.0完全自学宝典》的内容十分丰富，除了涵盖常见知识点，《VisualC++6.0完全自学宝典》还尽可能地穿插介绍一些有益于读者掌握的Windows编程知识。此外，《VisualC++6.0完全自学宝典》介绍了一些在工程中经常使用的工具、编程技巧等。全书将理论和实践有机地结合起来穿插在全书的各个章节进行讲解，以帮助读者更好地掌握相关知识。
目录
第1篇 C++程序设计语言入门
第1章 C++程序设计语言概述 2
1.1 C++和C#、Java的区别 2
1.1.1 面向对象还是面向过程 2
1.1.2 内存管理是否自动释放 2
1.1.3 是否跨平台 3
1.1.4 C++与其他语言的主要区别 3
1.2 C++语言的主要应用领域 4
1.3 C++的开发工具以及Visual C++ 6.0 5
1.3.1 Visual C++ 6.0开发工具简介 5
1.3.2 Visual C++ 6.0的开发过程 6
第2章 Visual C++ 6.0入门 7
2.1 安装Visual C++ 6.0 7
2.1.1 对硬件的要求 7
2.1.2 安装Visual C++ 6.0 8
2.1.3 安装MSDN Library 9
2.1.4 安装源代码管理器 11
2.1.5 完成安装 11
2.1.6 安装Visual C++ 6.0开发插件 12
2.1.7 编写宏文件 12
2.1.8 使用宏文件 15
2.2 Visual C++ 6.0开发环境介绍 17
2.2.1 熟悉Visual C++ 6.0开发环境 17
2.2.2 建立一个工程 18
2.2.3 工程菜单 21
2.2.4 编译菜单 22
2.2.5 Tools菜单 23
2.2.6 工具条 23
2.3 创建第一个Visual C++程序 24
2.3.1 编写代码 24
2.3.2 编译程序 25
2.3.3 运行程序 25
2.4 使用源代码管理器 25
2.4.1 基本概念 26
2.4.2 创建数据库 26
2.4.3 根据现有工程在服务端创建文件夹 27
2.4.4 代码入库和出库 27
2.4.5 版本控制（Label） 29
2.5 常见问题 29
2.5.1 必须安装和Visual C++ 6.0配套发行的MSDN Library吗 29
2.5.2 可以在Visual C++ 6.0下使用其他的C++编译器吗 29
第3章 C++基础语法 30
3.1 变量和常量 30
3.2 C++基础数据类型 31
3.2.1 整值类型 31
3.2.2 浮点值类型 32
3.2.3 布尔类型 33
3.2.4 字符串类型 33
3.3 C++高级数据类型 34
3.3.1 枚举类型 34
3.3.2 结构类型 36
3.3.3 联合类型 37
3.3.4 数组类型 38
3.4 指针和引用 40
3.4.1 指针变量的声明与初始化 41
3.4.2 指针运算符：& 43
3.4.3 指针运算符：* 44
3.4.4 指针运算符：:: 45
3.4.5 指针运算 47
3.4.6 指针与常量限定符 48
3.4.7 指针与数组 49
3.4.8 引用 50
3.5 表达式和运算符 52
3.5.1 表达式的定义 52
3.5.2 基本运算符 52
3.5.3 逻辑运算操作符 53
3.5.4 ==、>、>=、<、<=、!=运算符 53
3.5.5 ++、——操作符 53
3.5.6 位操作符 54
3.5.7 new/delete操作符 54
3.6 程序控制结构 56
3.6.1 switch/case结构 56
3.6.2 if/else/else if结构 58
3.6.3 goto语句 59
3.6.4 for循环语句 59
3.6.5 while与do/while循环语句 61
3.6.6 break语句 62
3.6.7 continue语句 63
3.7 函数 64
3.7.1 函数的定义 64
3.7.2 函数的返回类型 65
3.7.3 函数的参数 65
3.7.4 参数传递 66
3.7.5 函数的默认参数 68
3.8 常见问题 69
3.8.1 new/delete操作符和malloc/free函数有何区别 69
3.8.2 应该使用const修饰符还是宏 70
第4章 C++面向对象编程 72
4.1 类的基本概念和特性 72
4.1.1 类和结构 72
4.1.2 类的数据成员 73
4.1.3 类的成员函数 74
4.1.4 类成员访问级别 75
4.1.5 类声明、类定义和类实现 76
4.1.6 类的内联函数和非内联函数 78
4.1.7 构造函数 78
4.1.8 析构函数 81
4.1.9 this指针 82
4.1.10 友元 82
4.1.11 静态成员 84
4.2 类的派生和继承 87
4.2.1 public继承 87
4.2.2 protected继承 98
4.2.3 private继承 100
4.3 常见问题 100
4.3.1 析构函数是否可以定义为虚函数，有何用处 1014.3.2 在C++中struct被赋予了哪些类的特征 102
第5章 异常及其处理 104
5.1 异常的产生 104
5.2 异常的处理 106
5.3 深入了解异常 109
5.3.1 异常的再抛出 109
5.3.2 异常的参数传递 110
5.4 Visual C++ 6.0中的异常 112
5.4.1 关键字_try/_except/_finally 112
5.4.2 TRY/CATCH宏 112
5.5 常见问题 113
5.5.1 应该怎样设计异常 113
5.5.2 如何避免使用异常 114
第2篇 使用Visual C++ 6.0进行常用开发
第6章 Visual C++ 6.0开发起步 116
6.1 Windows消息机制 116
6.1.1 什么是消息 116
6.1.2 消息的分类 117
6.1.3 消息的处理过程 118
6.2 Win32 API介绍 118
6.2.1 API的分类 118
6.2.2 API的用途 119
6.2.3 在Visual C++ 6.0中使用Win32 API 119
6.3 MFC介绍 119
6.3.1 MFC的来源和用途 120
6.3.2 MFC的基本框架结构 120
6.3.3 使用MFC 121
6.4 常见问题 122
6.4.1 如何自定义消息 122
6.4.2 Win32 API定义了哪些数据类型 123
6.4.3 Visual C++、Win32 API和MFC之间的关系 124
6.4.4 使用C++开发Windows应用程序必须使用Win32 API或者MFC吗 124
第7章 开发基于对话框的应用程序 126
7.1 使用向导生成应用程序框架 126
7.1.1 建立基于对话框的应用程序框架 126
7.1.2 控件 128
7.2 基于对话框的程序基本框架 128
7.2.1 应用程序的入口函数 129
7.2.2 MFC应用程序的入口点 130
7.2.3 CDemo1App类解析 131
7.2.4 CDemo1Dlg类框架解析 132
7.2.5 CDemo1Dlg类解析 134
7.3 实现数据交互 136
7.3.1 使用类向导编辑控件属性 137
7.3.2 使用类向导实现数据交互 137
7.4 实现消息映射 139
7.4.1 消息的分类 140
7.4.2 消息的处理 140
7.4.3 处理【OK】按钮单击事件 141
7.4.4 程序实现 143
7.4.5 自定义控件 145
7.5 实战：简易计算器 148
7.5.1 程序界面设计 148
7.5.2 简易计算器的业务逻辑 149
7.5.3 简易计算器的状态 150
7.5.4 简易计算器的实现 151
7.6 常见问题 159
7.6.1 如何响应自定义消息 159
7.6.2 如何在窗体中使用定时器 160
第8章 文档/视图结构 163
8.1 基础知识 163
8.1.1 单文档视图和多文档视图结构 163
8.1.2 文件类型 164
8.1.3 使用向导生成一个简单的记事本 164
8.2 单文档/视图结构 166
8.2.1 CDocViewApp应用程序类解析 166
8.2.2 修改CDocViewApp类使得程序支持多种文件类型 168
8.2.3 CMainFrame框架类解析 171
8.2.4 CDocViewDoc文档类解析 173
8.2.5 CDocViewView视图类解析 174
8.3 多文档/视图结构 174
8.4 实战：使用单文档/视图结构实现八数码游戏 175
8.4.1 需求分析 176
8.4.2 设计并实现操作接口的主框架 176
8.4.3 设计并实现棋盘数据结构 178
8.4.4 在CEightDoc类中添加棋盘类的对象 182
8.4.5 在CMainFrame类中实现对棋盘的控制 182
8.4.6 在CEightView类中实现对棋盘的控制 184
8.4.7 在CEightView类中实现对棋盘的绘制 185
8.4.8 实现智能解题 188
8.5 常见问题 194
8.5.1 CFrameWnd、CView、CDocument是如何协作的 194
8.5.2 MFC中包含了哪些CView的派生类 195
第9章 使用Visual C++ 6.0开发动态链接库 196
9.1 动态链接库基础 196
9.1.1 创建静态链接库 196
9.1.2 使用静态链接库 197
9.1.3 创建简单的动态链接库 199
9.1.4 使用动态链接库 201
9.1.5 动态链接库和静态链接库的比较 203
9.1.6 规则DLL和扩展DLL 203
9.2 开发Win32动态链接库 204
9.2.1 动态链接库的初始化和反初始化 204
9.2.2 导出、导入函数和数据 206
9.3 开发基于MFC的动态链接库 208
9.3.1 创建链接MFC的规则DLL 208
9.3.2 MFC扩展 DLL 210
9.4 实战：使用动态链接库实现界面和功能实现的分离 212
9.5 常见问题 217
9.5.1 AFX_MANAGE_STATE宏有何作用，何时需要使用该宏 217
9.5.2 MFCDLL能导出C++类、成员函数吗 218
9.5.3 如何只导出部分类成员 218
9.5.4 LoadLibrary和FreeLibrary函数的用途有哪些，什么是显式加载动态链接库 219
9.5.5 DEPENDS工具的用处有哪些 220
9.5.6 Windows操作系统用来定位DLL的搜索路径是怎样的 220
第3篇 使用Visual C++ 6.0进行高级开发
第10章 多线程开发 222
10.1 为什么需要多线程 222
10.2 基础知识 222
10.2.1 进程与线程 222
10.2.2 关于“同时执行”、“并发处理” 223
10.3 线程的创建与结束 224
10.3.1 Sleep函数 224
10.3.2 CreateThread/ExitThread函数 225
10.3.3 _beginthreadex/_endthreadex函数 227
10.3.4 AfxBeginThread/AfxEndThread函数 228
10.3.5 选择哪种函数创建线程 231
10.4 线程的调度 233
10.4.1 优先权类别 233
10.4.2 优先权层级 234
10.5 核心对象 234
10.5.1 什么是核心对象 235
10.5.2 CloseHandle函数 235
10.6 线程同步 236
10.6.1 同步机制简介 236
10.6.2 临界区域（Critical Section） 236
10.6.3 使用临界区域保证数据访问的安全性 238
10.6.4 安全退出临界区域 240
10.6.5 互斥器（Mutexes） 242
10.6.6 使用互斥器设计线程安全的数据结构 244
10.6.7 信号量（Semaphores） 249
10.6.8 事件（Event Objects） 251
10.6.9 使用事件通知线程安全地退出 253
10.6.10 WaitForSingleObject系列函数 254
10.7 再论线程的创建和退出 255
10.7.1 回顾 255
10.7.2 创建线程的一个习惯用法 256
10.7.3 协作式退出线程 257
10.8 实战：多线程实现百米赛跑模拟 258
10.8.1 设计界面 259
10.8.2 设计相关数据结构 259
10.8.3 实现自定义消息响应 262
10.9 常见问题 265
10.9.1 在多线程情况下，使用STL（标准模板库）应该注意什么 265
10.9.2 临界区域（Critical Section）相比本章介绍的相关核心对象有何优缺点 265
第11章 数据库应用开发 266