第一部分 实用教程 1
第1章 C++/CLI编程基础 1
1.1 .NET与C++/CLI 1
1.1.1 .NET框架概述 1
1.1.2 公共语言运行时 3
1.1.3 C++/CLI概述 4
1.2 简单的C++/CLI程序 4
1.2.1 创建CLR控制台程序 4
1.2.2 命名空间 6
1.2.3 应用程序入口 7
1.2.4 控制台输入/输出 8
1.3 基本数据类型 11
1.3.1 基本数据类型 12
1.3.2 装箱与拆箱 13
1.3.3 强制类型转换 14
1.4 C++/CLI枚举 16
1.4.1 枚举的定义 16
1.4.2 枚举的常量 17
1.4.3 枚举常量的运算 17
1.5 C++/CLI数组 18
1.5.1 跟踪句柄 18
1.5.2 CLR数组 19
1.5.3 数组的排序及查找 21
1.5.4 多维数组 25
1.5.5 数组的数组 26
1.6 C++/CLI字符串 27
1.6.1 字符串的定义 27
1.6.2 字符串的常用操作 28
1.6.3 内部指针 33
1.7 函数及泛型函数 34
1.7.1 函数的定义及调用 34
1.7.2 参数可变函数 35
1.7.3 泛型函数 36
第2章 C++/CLI面向对象编程基础 39
2.1 数值类和引用类 40
2.1.1 数值类 41
2.1.2 引用类 42
2.2 类的成员 44
2.2.1 类和程序集 44
2.2.2 字面值字段与只读字段 47
2.2.3 类的构造函数 48
2.2.4 类的终结器 50
2.3 类的属性 52
2.3.1 标量属性 52
2.3.2 索引属性 54
2.3.3 静态属性 55
2.4 类的继承和多态 55
2.4.1 类的继承 56
2.4.2 接口类 59
2.4.3 类的多态 61
2.5 委托和事件 64
2.5.1 委托的定义 64
2.5.2 无约束委托 66
2.5.3 事件及其处理 68
2.6 通用类及通用集合类 69
2.6.1 通用类的定义 69
2.6.2 通用集合类 72
2.7 异常处理与调试 80
2.7.1 C++/CLI异常处理 80
2.7.2 常见.NET异常类 81
2.7.3 Debug类和Trace类 82
2.7.4 使用调试类和跟踪类 83
第3章 Windows Forms编程基础 89
3.1 Windows窗体基础 89
3.1.1 创建Windows窗体项目 89
3.1.2 窗体应用程序的结构 91
3.2 窗体及其属性、事件 93
3.2.1 Form类 93
3.2.2 窗体属性 93
3.2.3 窗体事件 95
3.3 Windows通用控件 97
3.3.1 标签 97
3.3.2 按钮 98
3.3.3 文本框 99
3.3.4 图片框 102
3.3.5 列表框 102
3.3.6 组合框 103
3.3.7 进度条 104
3.3.8 定时器 105
3.4 菜单、工具栏及状态栏 107
3.4.1 菜单栏 107
3.4.2 工具栏 111
3.4.3 状态栏 113
3.5 多文档界面(MDI) 114
3.5.1 多文档界面的结构 114
3.5.2 创建多文档界面窗体 115
3.5.3 合并菜单及工具条 116
3.5.4 管理MDI子窗体 120
3.6 对话框及通用对话框 122
3.6.1 模式与无模式对话框 123
3.6.2 通用对话框 124
3.6.3 消息提示对话框 126
第4章 文件与数据串行化 128
4.1 文件类及数据流 128
4.1.1 System∷IO命名空间 128
4.1.2 读写数据流 129
4.2 目录的常用操作 130
4.2.1 Directory类 130
4.2.2 常用目录操作 131
4.2.3 DirectoryInfo类 134
4.3 文件的常用操作 136
4.3.1 File和Path类 137
4.3.2 常用文件操作 139
4.3.3 FileInfo类 144
4.3.4 读写文本数据 146
4.3.5 读写二进制数据 149
4.4 数据串行化 153
4.4.1 串行化与反串行化 154
4.4.2 二进制串行化方式 155
第5章 GDI+编程基础 160
5.1 GDI+概述 160
5.1.1 GDI+的组成部分 160
5.1.2 GDI+的接口架构 161
5.2 图形绘制 162
5.2.1 画笔Pen类 162
5.2.2 画刷Brush类 164
5.2.3 绘制二维图形 166
5.2.4 绘图和填充示例 169
5.3 图像处理 171
5.3.1 图像Image类 171
5.3.2 加载及显示图像 172
5.3.3 裁切及缩放图像 176
5.3.4 旋转、反转及扭曲图像 177
5.3.5 图形对象变换 178
5.4 文本显示 181
5.4.1 字体Font类 181
5.4.2 简单文本输出 182
5.4.3 反锯齿化处理 183
5.4.4 格式文本输出 185
5.5 打印及打印预览 188
5.5.1 PrintDocument类 188
5.5.2 打印相关的对话框 189
5.5.3 绘制打印页面 189
第6章 多线程编程技术 194
6.1 进程与线程 194
6.1.1 进程与线程的关系 194
6.1.2 多线程的工作方式 195
6.2 .NET对多线程的支持 196
6.2.1 多线程Thread类 196
6.2.2 线程的创建与启动 197
6.2.3 线程的状态与优先级 198
6.2.4 线程的挂起、恢复及终止 201
6.3 托管线程池与定时器 203
6.3.1 托管线程池 203
6.3.2 定时器 204
6.4 线程的同步 205
6.4.1 .NET对同步的支持 205
6.4.2 使用Monitor类同步线程 206
6.4.3 使用Mutex类同步线程 209
第7章 网络应用编程 213
7.1 网络通信概述 213
7.1.1 网络通信模型 213
7.1.2 网络通信协议 215
7.1.3 IP地址及端口 216
7.1.4 .NET网络接口 217
7.2 套接字概述 219
7.2.1 套接字Socket类 220
7.2.2 面向连接的套接字 222
7.2.3 面向无连接的套接字 225
7.3 同步TCP应用编程 225
7.3.1 NetworkStream对象 226
7.3.2 TcpClient和TcpListener类 227
7.3.3 发送和接收数据 230
7.3.4 TCP无消息边界处理 234
7.4 异步TCP应用编程 235
7.4.1 异步操作方式 235
7.4.2 异步接收连接请求 237
7.4.3 异步发送连接请求 238
7.4.4 异步发送和接收数据 239
7.5 UDP应用编程 245
7.5.1 UdpClient类 245
7.5.2 发送和接收数据 246
7.5.3 广播和组播 249
第8章 数据库应用编程 255
8.1 ADO.NET概述 255
8.1.1 ADO.NET体系结构 255
8.1.2 ADO.NET对象模型 257
8.2 数据库访问核心类 257
8.2.1 数据库提供者核心类 257
8.2.2 ADO.NET核心类 259
8.3 创建数据库连接 260
8.3.1 Connection对象 260
8.3.2 连接字符串 261
8.3.3 连接数据库 262
8.4 连接的数据库操作 263
8.4.1 Command对象 263
8.4.2 执行SQL语句 264
8.4.3 执行存储过程 266
8.4.4 DataReader对象 268
8.5 断开的数据库操作 271
8.5.1 DataAdapter对象 271
8.5.2 DataSet对象及其结构 272
8.5.3 修改DataSet中的内容 275
8.6 数据绑定 279
8.6.1 创建非类型化DataSet 279
8.6.2 数据访问控件 281
8.6.3 控件的数据绑定 285
第二部分 实验指导 289
实验0 熟悉Visual Studio 2010开发环境 289
实验1 C++/CLI编程基础 295
实验2 面向对象编程 300
实验3 继承和多态 306
实验4 窗体及通用控件 311
实验5 菜单、工具栏和状态栏 317
实验6 文件及数据串行化 322
实验7 GDI+图形绘制 327
实验8 文字及打印 332
实验9 多线程编程 336
实验10 网络应用编程 342
实验11 数据库应用编程 349
第三部分 综合实习 353
学生成绩管理系统 353
附录 372
附录A 程序调试 372
附录B 数据库准备 377
附录C 安装部署程序 388