
微信扫一扫,移动浏览光盘
简介
本书介绍了如何使用Visual C++ 6.0编写Windows应用程序。全书内容
全面、结构清晰、由浅入深、注重实用,并结合了大量的实例,以方便读者
理解。本书既包含菜单、鼠标、键盘等基本操作,又包含图形编程、
Internet程序设计、数据库编程等高级主题。每章讲述一个主题,在展示知
识点的同时,提供具体的演示实例,最后两章详细讲解了两个综合实例,以
使读者对Visual C++编程技术有整体的认识。
本书适合大中专院校的学生、各类培训班学员、想从事Visual C++开发
的程序员,尤其是有一定C++基础,想进一步学习Windows编程的读者。
目录
第一篇 visual c++基础
第1章 visual c++集成开发环境 28
本章主要介绍了visual c++的主要版本,以及如何安装visual c++ 6.0集成开发环境。通过创建hello world实例,让读者对visual c++有一个感性的认识。通过本章的学习,读者应当了解visual c++的发展历程、了解visual c++集成开发环境的安装、熟悉visual c++开发工具菜单和工具栏等。
1.1 visual c++的版本 28
1.2 安装visual c++ 6.0 29
1.3 visual c++集成开发环境 32
1.3.1 菜单栏 33
1.3.2 工具栏 37
1.3.3 工作区窗口 39
1.3.4 输出窗口 40
1.4 编写第一个程序hello world 40
1.4.1 创建hello world工程 41
1.4.2 编译并执行程序 42
1.5 小结 42
第2章 使用visual c++创建基本应用程序 43
本章主要介绍了visual c++工程,以及如何使用visual c++创建基本应用程序,通过创建基本应用程序实例,帮助读者加深对visual c++工程的理解。通过本章的学习,读者应当理解visual c++工程及其工程文件的意义,掌握各种应用程序框架的创建方法。
2.1 理解visual c++工程 43
2.2 visual c++中应用程序的类型 44
2.2.1 控制台应用程序 44
2.2.2 基于对话框的应用程序 45
.2.2.3 单文档应用程序 45
2.2.4 多文档应用程序 45
2.2.5 基于html文档的应用程序 45
2.3 创建应用程序框架 46
2.3.1 创建基于对话框的应用程序 46
2.3.2 创建单文档应用程序 47
2.3.3 创建多文档应用程序 49
2.3.4 创建基于html的应用程序 50
2.4 小结 51
第3章 面向对象程序设计基础 52
本章主要介绍面向对象编程及程序异常处理的基础知识。面向对象编程具有抽象、封装、继承和多态四个主要特征。面向对象程序设计围绕现实世界的概念来组织模块,采用对象来描述问题空间的实体,用程序代码模拟现实世界中真实或抽象的对象。
3.1 面向过程与面向对象 52
3.1.1 面向过程的问题 52
3.1.2 面向对象的特性 53
3.2 c++类的基本概念 53
3.2.1 结构体与类 53
3.2.2 类与对象 55
3.2.3 类的声明、定义和实现 55
3.2.4 成员变量 57
3.2.5 成员函数 58
3.2.6 静态成员 60
3.2.7 this指针 61
3.3 构造函数 63
3.3.1 使用构造函数的原因 63
3.3.2 构造函数的使用 63
3.3.3 重载构造函数 66
3.3.4 析构函数 67
3.4 继承 69
3.4.1 继承的概念 69
3.4.2 继承的工作机制 69
3.4.3 公有继承 70
3.4.4 私有继承 72
3.4.5 保护继承 73
3.4.6 多重继承 75
3.5 异常处理 77
3.5.1 异常的概念 77
3.5.2 异常处理机制 77
3.5.3 基本异常处理方法 78
3.5.4 多个异常处理方法 80
3.6 小结 82
第4章 visual c++调试技术 83
本章介绍了在visual c++环境下,如何调试程序及visual c++中的各种调试工具的使用。通过本章的学习,读者应对visual c++环境有更深入的了解,可以利用多种调试工具调试程序。visual c++虽然提供了强大的调试工具,但一个好的程序员不应该把所有的判断交给编译器和调试器,而是应该在程序中自己加以程序保护和错误定位。
4.1 debug与release 83
4.2 调试的过程 84
4.2.1 设置断点 84
4.2.2 控制程序的运行 86
4.3 使用查看工具 86
4.3.1 弹出式调试信息泡泡 87
4.3.2 变量窗口 87
4.3.3 观察窗口 87
4.3.4 快速查看窗口 88
4.3.5 内存查看窗口 88
4.3.6 寄存器窗口 88
4.3.7 调用堆栈窗口 89
4.4 其他调试技术 89
4.4.1 trace宏 89
4.4.2 assert宏 90
4.4.3 verify宏 90
4.5 小结 90
第二篇 windows编程
第5章 windows程序设计 92
通过本章的学习,读者可以掌握windows应用程序设计的一些基本概念与基本原理,进一步理解windows应用程序的内部运行机制,为接下来进一步学习利用底层api函数或高层的mfc类库来构造windows应用程序打下基础。
5.1 windows编程简介 92
5.1.1 windows api概述 92
5.1.2 windows应用程序中的常用术语 95
5.2 windows应用程序运行机制 97
5.2.1 生成windows应用程序框架 97
5.2.2 在windows应用程序中添加代码 97
5.2.3 编译并执行程序 100
5.3 程序入口:winmain()函数 100
5.3.1 winmain()函数的定义 101
5.3.2 定义和注册窗口类 102
5.3.3 创建窗口 103
5.3.4 显示和更新窗口 104
5.3.5 消息循环 104
5.4 窗口过程函数和消息处理 106
5.4.1 窗口过程函数 106
5.4.2 常用消息的处理 108
5.5 小结 110
第6章 mfc编程概述 111
本章首先概要叙述了mfc框架,然后通过基于mfc框架的单文档应用程序详细介绍了mfc框架的层次结构,并在此基础上剖析了mfc框架的运行机制,包括设计窗口类、注册窗口类、创建窗口、显示和更新窗口、消息循环,以及一个默认的窗口处理过程。
6.1 mfc概述 111
6.1.1 mfc设计原理 111
6.1.2 mfc特点 112
6.1.3 mfc appwizard向导 112
6.2 mfc层次结构设计 114
6.2.1 单文档应用程序的构成 114
6.2.2 cobject类 116
6.2.3 ccmdtarget类 116
6.2.4 应用和线程类 117
6.2.5 窗口类 117
6.2.6 文档视图类 118
6.3 mfc框架程序分析 118
6.3.1 theapp全局对象 119
6.3.2 winmain()函数 121
6.3.3 afxwininit()函数 122
6.3.4 initapplication()函数 123
6.3.5 initinstance()函数 124
6.3.6 loadframe()函数 128
6.3.7 run()函数 131
6.3.8 终止应用程序 133
6.4 小结 133
第7章 mfc消息映射与消息传递机制 134
本章首先介绍了消息的一般种类,然后通过一个单文档类型的应用示例进一步挖掘mfc框架的消息映射机制,介绍了消息如何把相关信息放入消息映射数组中,并和相应的响应函数产生关联。最后介绍了几种常用的消息映射宏。
7.1 消息概述 134
7.1.1 队列消息和非队列消息 134
7.1.2 系统消息和应用程序消息 135
7.1.3 窗口消息、命令消息和控件通知 135
7.2 mfc消息映射机制 136
7.2.1 mfc消息处理 137
7.2.2 一个应用程序的消息映射分析 137
7.2.3 mfc消息映射的实现方法 139
7.2.4 消息映射宏的种类 142
7.3 小结 143
第8章 图形编程 144
本章首先讲述了mfc中关于gdi及绘图的相关知识,其主要内容包括:gdi、设备环境及其相关类、gdi对象、绘制简单图形、映射模式等内容,然后简单说明了在窗口中进行文本编辑的基本知识,最后通过一个简单实例对滚动条在视窗中的基本操作进行了描述。
8.1 绘制图形的相关知识 144
8.1.1 图形设备接口 144
8.1.2 逻辑空间和设备空间 145
8.1.3 设备环境 145
8.1.4 一个简单的图形程序 145
8.2 设备环境的相关类 147
8.2.1 cdc类 147
8.2.2 cpaintdc类 149
8.2.3 cclientdc类 151
8.2.4 cwindowdc类 152
8.3 gdi对象 153
8.3.1 gdi对象的种类 153
8.3.2 gdi对象的生命周期 153
8.4 绘制图形 155
8.4.1 绘制线条 156
8.4.2 绘制矩形 157
8.4.3 绘制椭圆 158
8.4.4 其他绘图方式 159
8.5 映射模式 162
8.5.1 坐标转换 162
8.5.2 映射模式 166
8.6 文本编程 168
8.6.1 插入符 168
8.6.2 文本的输入与显示 170
8.7 滚动视窗 175
8.7.1 滚动条 175
8.7.2 滚动视窗应用实例 176
8.8 小结 180
第9章 位图编程 181
本章首先阐述了mfc中位图的种类,然后讨论了如何利用cbitmap类来创建并使用设备相关类位图,特别是利用内存设备环境实现消除因多次重绘造成的闪烁现象。然后对调色板的种类、操作及事件进行了详细介绍。最后对设备无关类图的文件结构及操作进行了阐述,并对一个visual c++中的新功能cimage类进行了简述。
9.1 位图的种类 181
9.2 位图的显示 182
9.2.1 创建位图对象 182
9.2.2 加载和设置位图内容 183
9.2.3 显示位图 185
9.2.4 创建一个动画实例 186
9.3 调色板 190
9.3.1 调色板的种类 190
9.3.2 调色板的操作 190
9.3.3 调色板的事件 192
9.4 设备无关类位图 193
9.4.1 bmp图像文件的结构 193
9.4.2 位图操作 195
9.4.3 cimage类 198
9.5 小结 200
第10章 对话框 201
本章首先介绍了windows系统中一些常用的基本控件,并介绍了在对话框这个大容器里如何创建这些基本控件,同时简单阐述了几种常用的控件消息。在充分了解控件的基础上,分别介绍了模态和非模态对话框的创建。然后详细阐述了对话框的ddx和ddv机理,并通过一个简单实例进一步加深对其的理解。接下来结合一个实例对树形视图和列表视图控件进行了简单介绍,最后详细讨论了属性表单的概念、创建及处理等内容。
10.1 控件 201
10.1.1 常用控件介绍 201
10.1.2 控件的创建 202
10.1.3 控件的消息 204
10.2 对话框的创建 207
10.2.1 模态对话框的创建 207
10.2.2 非模态对话框的创建 210
10.3 对话框数据交换和验证 212
10.3.1 数据交换 212
10.3.2 数据验证 215
10.3.3 创建一个图形显示实例 216
10.4 树形视图和列表视图控件 219
10.4.1 树形视图控件 219
10.4.2 列表视图控件 221
10.4.3 创建一个通讯录实例 224
10.5 属性表单和向导的创建 227
10.5.1 创建属性页 227
10.5.2 创建属性表单 229
10.5.3 创建向导 231
10.5.4 创建一个可动态添加记录的通讯录 235
10.6 小结 239
第11章 应用程序界面的定制 240
本章首先介绍了如何自定义应用程序的窗口界面,并介绍了修改程序窗口的图标、光标和背景的实现方法。然后对windows应用程序的窗口界面的三要素:菜单、工具栏和状态栏进行了详细的介绍,包括菜单的创建、快捷菜单、动态动态更改菜单、工具栏的创建及状态栏的创建。并通过实例进一步理解如何对应用程序的界面进行定制。
11.1 自定义应用程序的窗口界面 240
11.2 菜单 243
11.2.1 菜单的创建 243
11.2.2 mfc中的菜单消息 244
11.2.3 快捷菜单 246
11.2.4 动态更改菜单 248
11.2.5 手工添加菜单的消息响应 251
11.3 工具栏 252
11.3.1 在工具栏上更改按钮 253
11.3.2 创建和初始化工具栏 253
11.4 状态栏 256
11.4.1 状态栏的创建 256
11.4.2 在状态栏上显示系统时间 258
11.5 小结 260
第12章 文件操作 261
本章主要讨论了与文件操作相关的内容,主要包括两大块:第一是利用api函数进行文件的读写操作及其他常用操作;第二是利用mfc中的一个基类cfile的成员函数进行文件的读写操作及其他常用操作。其中,还单独介绍了如何利用cfiledialog类创建文件对话框,该对话框主要包括“打开”对话框和“另存为”对话框。
12.1 api文件操作 261
12.1.1 文件的创建和打开 261
12.1.2 文件的读写 262
12.1.3 文件的读写实例 264
12.1.4 其他文件操作 266
12.2 mfc文件操作 267
12.2.1 cfile类简介 267
12.2.2 文件的读写 269
12.2.3 cfiledialog类 270
12.2.4 其他文件操作 273
12.3 小结 275
第13章 文档、视图和框架 276
本章首先介绍了文档/视图结构的基本概念,并通过单文档类和多文档类应用程序来分析文档/视图结构中各类之间的关系。然后分别对框架、文档和视图进行了详细介绍。接下来又介绍了分割式窗口,并对静态分割窗口和动态分割窗口运用实例进行了详细介绍。最后对文档的串行化及carchive对象进行了详细介绍,并利用一个绘图实例来进一步介绍实现串行化需要的操作。
13.1 文档/视图简介 276
13.1.1 文档/视图的基本概念 276
13.1.2 两类文档/视图结构分析 277
13.2 框架 281
13.2.1 框架窗口的组成 281
13.2.2 多文档框架类中的常用函数 284
13.3 文档 286
13.3.1 对视图的管理 286
13.3.2 新建或打开文档 288
13.3.3 文档的保存和关闭 290
13.4 视图 290
13.4.1 cview类 291
13.4.2 视图对象的创建 293
13.5 分割式窗口 295
13.5.1 创建静态分割窗口 296
13.5.2 创建动态分割窗口 300
13.6 文档与串行化 302
13.6.1 carchive类和cfile类 302
13.6.2 文档串行化 304
13.6.3 类串行化 305
13.6.4 串行化实例 306
13.7 小结 310
第14章 进程和线程 311
本章首先讲解了进程与线程的基本概念及其基本操作,然后对win32进程的创建和终止,以及子程序的创建进行了详细阐述,紧接着介绍了win32线程和mfc线程处理的相关函数,并以一个多线程操作实例进一步讲解了线程的应用。在多线程处理过程中介绍了如何使用同步对象来实现多线程的同步,以及多个同步对象在多线程中的实现。
14.1 进程和线程的基本概念 311
14.1.1 进程 311
14.1.2 线程 313
14.2 win32的进程处理 313
14.2.1 进程的创建和终止 313
14.2.2 进程的终止 315
14.2.3 进程信息的获取 315
14.2.4 子进程的创建 317
14.3 win32的线程处理 319
14.3.1 线程的创建 319
14.3.2 线程的终止 320
14.3.3 线程的优先级别 320
14.3.4 多线程实例 321
14.4 mfc的线程处理 327
14.4.1 线程的创建与终止 328
14.4.2 线程的消息循环 330
14.5 线程同步 331
14.5.1 同步对象 332
14.5.2 多个同步对象的应用 337
14.6 小结 340
第三篇 数据库编程
第15章 visual c++数据库开发技术概述 342
通过本章的学习,读者对visual c++的各种数据库开发技术有了大体了解。后面的章节将对各种技术作详细的讲解,并通过一个简单的通讯录实例讲述应用各种技术进行数据库应用程序开发的步骤。各种技术都用同一个实例,这样读者可以更清楚地对各种技术进行比较。
15.1 visual c++数据库开发特点 342
15.2 visual c++中的数据库开发技术 343
15.2.1 odbc api技术 343
15.2.2 mfc odbc技术 343
15.2.3 dao技术 343
15.2.4 ole db技术 343
15.2.5 ado技术 344
15.3 小结 344
第16章 odbc api编程 345
通过本章的学习,读者可以较清楚地了解odbc api编程技术。本章首先介绍了odbc的基本概念和组成结构;然后介绍了创建数据源的方法及odbc api编程的一般步骤;最后通过实例具体说明了如何使用odbc api对数据库进行操作。
16.1 odbc简介 345
16.2 使用odbc api进行数据库开发 345
16.2.1 创建odbc数据源 346
16.2.2 分配环境句柄 347
16.2.3 分配连接句柄 347
16.2.4 使用sqlconnect连接数据源 348
16.2.5 使用sqldriveconnect连接数据源 349
16.2.6 使用sqlbrowseconnect连接数据源 351
16.2.7 准备并执行sql操作 353
16.2.8 获取结果集 353
16.2.9 断开数据源连接并释放环境句柄 355
16.3 使用odbc api实现通讯录 355
16.3.1 数据库设计 355
16.3.2 添加数据源 356
16.3.3 界面设计 356
16.3.4 创建工程 356
16.3.5 添加类 357
16.3.6 创建数据库操作类 359
16.3.7 系统主界面 362
16.3.8 显示联系人信息 364
16.3.9 删除联系人信息 365
16.3.10 添加联系人信息 366
16.3.11 修改联系人信息 367
16.4 小结 367
第17章 mfc odbc编程 368
通过本章的学习,读者可以较清楚地了解mfc odbc编程技术。本章首先对mfc odbc技术进行了简要介绍;然后详细介绍了cdatabase类、crecordset类的使用方法;最后通过简单的通讯录实例,具体说明了如何使用mfc odbc对数据库进行操作。
17.1 mfc odbc简介 368
17.2 cdatabase类 368
17.2.1 连接数据源 369
17.2.2 执行sql语句 370
17.2.3 事务处理 370
17.2.4 断开数据源连接 371
17.3 crecordset类 371
17.3.1 记录集的分类 371
17.3.2 记录字段交换(rfx) 372
17.3.3 创建记录集类 372
17.3.4 记录集类成员变量 373
17.3.5 打开、关闭记录集 374
17.3.6 在记录集中滚动 374
17.3.7 添加记录 375
17.3.8 修改记录 376
17.3.9 删除记录 376
17.4 使用mfc odbc实现通讯录 376
17.4.1 创建工程 377
17.4.2 系统主界面 378
17.4.3 显示联系人信息 380
17.4.4 删除联系人信息 381
17.4.5 添加联系人信息 382
17.4.6 修改联系人信息 384
17.5 小结 385
第18章 mfc dao编程 386
通过本章的学习,读者可以较清楚地了解mfc dao编程技术。本章首先对mfc dao技术进行了简要介绍;然后详细介绍了cworkspace类、cdaodatabase类、cdaorecordset类的使用方法;最后通过简单的通讯录实例,具体说明了如何使用mfc dao对数据库进行操作。
18.1 dao简介 386
18.1.1 dao内部结构 386
18.1.2 mfc与dao 387
18.2 cdaoworkspace类 388
18.2.1 cdaoworkspace类简介 388
18.2.2 cdaoworkspace类数据成员 389
18.2.3 显示打开工作区 389
18.2.4 cdaoworkspace类常用函数 390
18.3 cdaodatabase类 391
18.3.1 cdaodatabase类简介 391
18.3.2 cdaodatabase类数据成员 391
18.3.3 新建数据库 391
18.3.4 打开数据库 393
18.3.5 关闭数据库 394
18.3.6 cdaodatabase类常用函数 394
18.4 cdaorecordset类 395
18.4.1 cdaorecordset类简介 395
18.4.2 cdaorecordset类数据成员 396
18.4.3 新建记录集 396
18.4.4 添加记录 397
18.4.5 修改记录 399
18.4.6 删除记录 400
18.4.7 cdaorecordset类常用函数 402
18.5 使用mfc dao实现通讯录 403
18.5.1 创建工程 403
18.5.2 添加cdaorecordset类 404
18.5.3 系统主界面 405
18.5.4 显示联系人信息 407
18.5.5 删除联系人信息 408
18.5.6 添加联系人信息 410
18.5.7 修改联系人信息 411
18.6 小结 412
第19章 ole db编程 413
通过本章的学习,读者可以较清楚地了解ole db编程技术。本章首先介绍了ole db的组成结构、对象模型及特点等基本知识,然后讲述了如何开发atl ole db应用程序。
19.1 ole db简介 413
19.1.1 通用数据访问 413
19.1.2 ole db的结构 414
19.1.3 ole db 模板、属性 414
19.2 开发atl ole db应用程序 415
19.2.1 创建应用程序架构 415
19.2.2 添加对客户模板的支持 415
19.2.3 修改clinkinfo类 416
19.2.4 系统主界面 418
19.2.5 显示联系人信息 420
19.2.6 删除联系人信息 420
19.2.7 添加联系人信息 421
19.2.8 修改联系人信息 422
19.3 小结 423
第20章 ado编程 424
本章首先介绍了ado对象模型,并对各个对象进行了详细的介绍,然后详细地讲解了ado编程的两种方法。最后通过简单的通信录实例,具体说明了如何使用ado对数据库进行操作。通过本章的学习,读者可以较清楚地了解ado编程技术。
20.1 ado简介 424
20.1.1 ado 对象模型 424
20.1.2 connection对象 425
20.1.3 command对象 425
20.1.4 recordset对象 426
20.1.5 parameter对象 428
20.1.6 field对象 428
20.1.7 property对象 429
20.1.8 error对象 429
20.1.9 开发ado应用程序的方法 430
20.2 使用activex控件开发ado应用程序 430
20.2.1 创建工程 430
20.2.2 添加ado的activex控件 431
20.2.3 添加datagrid控件 432
20.2.4 运行程序 433
20.3 使用ado对象控件开发应用程序 433
20.3.1 引入ado库文件 434
20.3.2 初始化com环境 434
20.3.3 ado智能指针 434
20.3.4 连接数据库 435
20.3.5 打开记录集 436
20.3.6 在记录集中移动 437
20.3.7 访问记录集中的数据 437
20.4 使用ado实现通信录 439
20.4.1 创建工程 439
20.4.2 系统主界面 439
20.4.3 显示联系人信息 441
20.4.4 删除联系人信息 443
20.4.5 添加联系人信息 445
20.4.6 修改联系人信息 446
20.5 小结 447
第四篇 网络通信编程
第21章 visual c++网络编程基础 450
本章简要介绍了网络编程相关的概念和基本知识,是本书网络编程部分的基础。通过本章的学习,读者应该了解常用的网络协议,了解套接字、客户机/服务器模式、网络字节顺序、半相关、全相关等网络编程相关的基本概念,并了解visual c++对进行网络编程所提供的支持。
21.1 网络协议 450
21.1.1 osi参考模型 450
21.1.2 tcp/ip参考模型 451
21.2 网络编程相关概念 452
21.2.1 客户机/服务器模式 452
21.2.2 套接字 452
21.2.3 网络字节顺序 452
21.2.4 半相关与全相关 453
21.3 visual c++对网络编程的支持 453
21.3.1 windows socket api 453
21.3.2 mfc winsock类 453
21.3.3 wininet支持 454
21.3.4 mapi支持 454
21.3.5 isapi支持 454
21.4 小结 455
第22章 windows socket api编程 456
windows socket api为windows下网络通信提供了一种强大的开发和运行环境,windows sockets已成为windows下标准的网络程序设计接口。本章主要讲述了windows sockets相关的概念及主要函数,并通过聊天室的实例,讲述了如何利用windows sockets进行网络程序的开发。
22.1 windows sockets概述 456
22.1.1 windows sockets的发展 456
22.1.2 windows sockets的类型 457
22.1.3 windows sockets扩展 457
22.1.4 套接字编程模型 458
22.2 windows socket api主要函数 459
22.2.1 初始化winsock 460
22.2.2 创建套接字 460
22.2.3 绑定地址 461
22.2.4 将套接字设置为监听状态 462
22.2.5 发送连接请求 463
22.2.6 接受连接请求 464
22.2.7 发送数据 465
22.2.8 接收数据 465
22.2.9 关闭套接字 466
22.2.10 关闭加载的套接字库 466
22.2.11 确定套接字状态 466
22.3 windows socket api编程步骤 467
22.3.1 引入所需文件 467
22.3.2 服务器端编程 468
22.3.3 客户端编程 469
22.4 基于winsock的简单聊天室的实现 470
22.4.1 系统总体设计 470
22.4.2 创建服务器端工程 471
22.4.3 添加服务器端代码 472
22.4.4 服务器线程 474
22.4.5 创建客户端工程 475
22.4.6 添加客户端代码 475
22.4.7 客户端线程 476
22.5 小结 477
第23章 mfc socket编程 478
本章首先对casyncsocket类、csocket类的成员函数与变量进行了详细介绍,然后介绍了winsock类的一般编程步骤,最后通过一个简单文件发送实例演示了如何使用csocket类进行网络编程。通过本章的学习,读者可以对winsock类的成员函数、变量及编程步骤有深入了解,较清楚地了解winsock类编程技术。
23.1 casyncsocket类 478
23.1.1 成员变量和构造函数 478
23.1.2 绑定地址 479
23.1.3 将套接字设置为监听状态 480
23.1.4 发送连接请求 481
23.1.5 接受连接请求 482
23.1.6 控制套接字模式 483
23.1.7 发送数据 483
23.1.8 接收数据 485
23.1.9 断开数据传输 487
23.1.10 关闭套接字 487
23.1.11 网络事件处理 488
23.1.12 属性函数 488
23.1.13 消息处理函数 492
23.2 csocket类 493
23.2.1 构造函数 493
23.2.2 属性函数 494
23.2.3 操作函数 495
23.2.4 消息处理函数 495
23.3 编程模型 495
23.3.1 casyncsocket类编程模型 495
23.3.2 csocket类编程模型 496
23.4 利用csocket类实现文件传输 497
23.4.1 系统总体设计 497
23.4.2 创建工程 498
23.4.3 发送程序代码 498
23.4.4 接收程序代码 500
23.5 小结 502
第24章 wininet编程 503
通过本章的学习,读者可以较清楚地了解wininet编程技术。本章首先介绍了wininet的基本概念、wininet api主要函数及mfc wininet类,最后通过一个简单的ftp客户端实例,演示了如何使用wininet类进行internet客户端编程。
24.1 wininet api简介 503
24.1.1 通用wininet api函数 503
24.1.2 http函数 504
24.1.3 ftp函数 505
24.1.4 gopher函数 506
24.2 mfc wininet类 506
24.2.1 cinternetsession类 506
24.2.2 cinternetconnection类 508
24.2.3 chttpconnection类 509
24.2.4 cftpconnection类 510
24.2.5 cgopherconnection类 511
24.2.6 cinternetfile类 512
24.2.7 chttpfile类 513
24.2.8 cgopherfile类 515
24.2.9 cfilefind类 515
24.2.10 cftpfilefind类 516
24.2.11 cgopherfilefind类 517
24.2.12 cgopherlocator类 518
24.2.13 cinternetexception类 518
24.3 用wininet类进行编程 518
24.3.1 http客户端编程步骤 519
24.3.2 ftp客户端编程步骤 520
24.3.3 gopher客户端编程步骤 521
24.4 利用wininet类实现ftp客户端 521
24.4.1 系统总体设计 521
24.4.2 创建工程 522
24.4.3 连接ftp服务器 523
24.4.4 获取当前目录所有文件 524
24.4.5 返回上级目录 524
24.4.6 下载文件 525
24.4.7 上传文件 526
24.5 小结 526
第五篇 windows组件编程
第25章 编写动态链接库 528
在windows系统中动态链接库随处可见,动态链接库是windows编程中很重要的一部分,尤其是对于大型的应用程序,往往需要将很多功能封装在动态链接库中。本章比较全面地介绍了动态链接库的基本理论和概念,并以实例的形式演示了动态链接库的编写与使用。
25.1 动态链接库简介 528
25.1.1 静态链接与动态链接 528
25.1.2 动态链接库的优点 529
25.2 创建动态链接库 529
25.2.1 创建工程 529
25.2.2 添加代码 530
25.2.3 从dll导出 531
25.2.4 函数匹配 533
25.2.5 dll入口函数 533
25.3 使用动态链接库 534
25.3.1 一个使用dll的例子 534
25.3.2 隐式调用和显式调用 535
25.4 动态链接库实例——读写配置文件 536
25.4.1 创建工程 536
25.4.2 设置头文件 537
25.4.3 读取一行数据 538
25.4.4 设置一行数据 539
25.4.5 读取多行数据 540
25.4.6 设置多行数据 541
25.5 小结 543
第26章 使用与编写activex控件 544
activex控件是基于组件对象模型(com)的可重用软件组件,它支持广泛的ole功能并可自定义以满足多种软件的需要。activex控件可以在自己的窗口中对自身进行描述,对事件(如单击鼠标)做出响应,并且可以通过包括属性和方法的接口进行管理,这些属性和方法与自动化对象中的属性和方法相似。本章还介绍了activex控件相关的一些基本概念,通过本章的学习,读者应该能够掌握如何创建和测试简单的activex控件。
26.1 activex控件简介 544
26.1.1 activex控件的发展 544
26.1.2 activex控件属性、事件和方法 545
26.1.3 mfc对activex控件的支持 546
26.2 使用activex控件 546
26.2.1 浏览activex控件 546
26.2.2 在工程中添加activex控件 547
26.2.3 设置activex控件属性 548
26.2.4 使用activex控件类 548
26.3 编写activex控件 549
26.3.1 创建activex工程 549
26.3.2 绘制控件 552
26.3.3 添加控件属性 553
26.3.4 添加控件方法 554
26.3.5 添加控件事件 554
26.3.6 注册activex控件 555
26.3.7 测试activex控件 557
26.4 小结 558
第六篇 综合实例
第27章 人事管理系统的设计与实现 560
本章通过一个人事管理系统的实例,展示了visual c++技术的综合应用,就该系统本身而言,许多细节考虑还不够周密,功能还很不完善,如没有实现部门信息的管理、职位的管理等。本章旨在通过一个实例,使读者对visual c++编程技术有一个整体的认识。
27.1 系统总体设计 560
27.1.1 系统功能 560
27.1.2 数据库设计 561
27.2 系统的实现 563
27.2.1 创建工程 563
27.2.2 应用程序主框架 564
27.2.3 连接、断开数据库 565
27.2.4 用户登录模块 566
27.2.5 系统主界面 567
27.2.6 添加新员工模块 568
27.2.7 修改员工信息模块 571
27.2.8 出勤记录管理模块 576
27.2.9 请假记录管理模块 580
27.2.10 加班记录管理模块 584
27.2.11 出差记录管理模块 588
27.3 小结 592
第28章 聊天室的设计与实现 593
通过本章所讲解的内容,使读者了解了聊天程序的具体编写过程。本章的程序只是一个聊天室的示例,并不是一个完善的、功能齐全的聊天室软件,旨在使读者了解visual c++网络编程的原理和步骤。感兴趣的读者可以在此基础上进行扩充,以编写出功能更强大的聊天室软件。
28.1 聊天室程序功能说明 593
28.1.1 服务器端功能介绍 593
28.1.2 客户端功能介绍 593
28.1.3 消息类的定义 594
28.2 服务器端应用程序 595
28.2.1 建立服务器应用程序框架 595
28.2.2 侦听套接字类 596
28.2.3 客户套接字类 597
28.2.4 服务器主界面类 599
28.3 客户端应用程序 601
28.3.1 客户端套接字类 602
28.3.2 客户端主界面类 602
28.4 小结 606
第1章 visual c++集成开发环境 28
本章主要介绍了visual c++的主要版本,以及如何安装visual c++ 6.0集成开发环境。通过创建hello world实例,让读者对visual c++有一个感性的认识。通过本章的学习,读者应当了解visual c++的发展历程、了解visual c++集成开发环境的安装、熟悉visual c++开发工具菜单和工具栏等。
1.1 visual c++的版本 28
1.2 安装visual c++ 6.0 29
1.3 visual c++集成开发环境 32
1.3.1 菜单栏 33
1.3.2 工具栏 37
1.3.3 工作区窗口 39
1.3.4 输出窗口 40
1.4 编写第一个程序hello world 40
1.4.1 创建hello world工程 41
1.4.2 编译并执行程序 42
1.5 小结 42
第2章 使用visual c++创建基本应用程序 43
本章主要介绍了visual c++工程,以及如何使用visual c++创建基本应用程序,通过创建基本应用程序实例,帮助读者加深对visual c++工程的理解。通过本章的学习,读者应当理解visual c++工程及其工程文件的意义,掌握各种应用程序框架的创建方法。
2.1 理解visual c++工程 43
2.2 visual c++中应用程序的类型 44
2.2.1 控制台应用程序 44
2.2.2 基于对话框的应用程序 45
.2.2.3 单文档应用程序 45
2.2.4 多文档应用程序 45
2.2.5 基于html文档的应用程序 45
2.3 创建应用程序框架 46
2.3.1 创建基于对话框的应用程序 46
2.3.2 创建单文档应用程序 47
2.3.3 创建多文档应用程序 49
2.3.4 创建基于html的应用程序 50
2.4 小结 51
第3章 面向对象程序设计基础 52
本章主要介绍面向对象编程及程序异常处理的基础知识。面向对象编程具有抽象、封装、继承和多态四个主要特征。面向对象程序设计围绕现实世界的概念来组织模块,采用对象来描述问题空间的实体,用程序代码模拟现实世界中真实或抽象的对象。
3.1 面向过程与面向对象 52
3.1.1 面向过程的问题 52
3.1.2 面向对象的特性 53
3.2 c++类的基本概念 53
3.2.1 结构体与类 53
3.2.2 类与对象 55
3.2.3 类的声明、定义和实现 55
3.2.4 成员变量 57
3.2.5 成员函数 58
3.2.6 静态成员 60
3.2.7 this指针 61
3.3 构造函数 63
3.3.1 使用构造函数的原因 63
3.3.2 构造函数的使用 63
3.3.3 重载构造函数 66
3.3.4 析构函数 67
3.4 继承 69
3.4.1 继承的概念 69
3.4.2 继承的工作机制 69
3.4.3 公有继承 70
3.4.4 私有继承 72
3.4.5 保护继承 73
3.4.6 多重继承 75
3.5 异常处理 77
3.5.1 异常的概念 77
3.5.2 异常处理机制 77
3.5.3 基本异常处理方法 78
3.5.4 多个异常处理方法 80
3.6 小结 82
第4章 visual c++调试技术 83
本章介绍了在visual c++环境下,如何调试程序及visual c++中的各种调试工具的使用。通过本章的学习,读者应对visual c++环境有更深入的了解,可以利用多种调试工具调试程序。visual c++虽然提供了强大的调试工具,但一个好的程序员不应该把所有的判断交给编译器和调试器,而是应该在程序中自己加以程序保护和错误定位。
4.1 debug与release 83
4.2 调试的过程 84
4.2.1 设置断点 84
4.2.2 控制程序的运行 86
4.3 使用查看工具 86
4.3.1 弹出式调试信息泡泡 87
4.3.2 变量窗口 87
4.3.3 观察窗口 87
4.3.4 快速查看窗口 88
4.3.5 内存查看窗口 88
4.3.6 寄存器窗口 88
4.3.7 调用堆栈窗口 89
4.4 其他调试技术 89
4.4.1 trace宏 89
4.4.2 assert宏 90
4.4.3 verify宏 90
4.5 小结 90
第二篇 windows编程
第5章 windows程序设计 92
通过本章的学习,读者可以掌握windows应用程序设计的一些基本概念与基本原理,进一步理解windows应用程序的内部运行机制,为接下来进一步学习利用底层api函数或高层的mfc类库来构造windows应用程序打下基础。
5.1 windows编程简介 92
5.1.1 windows api概述 92
5.1.2 windows应用程序中的常用术语 95
5.2 windows应用程序运行机制 97
5.2.1 生成windows应用程序框架 97
5.2.2 在windows应用程序中添加代码 97
5.2.3 编译并执行程序 100
5.3 程序入口:winmain()函数 100
5.3.1 winmain()函数的定义 101
5.3.2 定义和注册窗口类 102
5.3.3 创建窗口 103
5.3.4 显示和更新窗口 104
5.3.5 消息循环 104
5.4 窗口过程函数和消息处理 106
5.4.1 窗口过程函数 106
5.4.2 常用消息的处理 108
5.5 小结 110
第6章 mfc编程概述 111
本章首先概要叙述了mfc框架,然后通过基于mfc框架的单文档应用程序详细介绍了mfc框架的层次结构,并在此基础上剖析了mfc框架的运行机制,包括设计窗口类、注册窗口类、创建窗口、显示和更新窗口、消息循环,以及一个默认的窗口处理过程。
6.1 mfc概述 111
6.1.1 mfc设计原理 111
6.1.2 mfc特点 112
6.1.3 mfc appwizard向导 112
6.2 mfc层次结构设计 114
6.2.1 单文档应用程序的构成 114
6.2.2 cobject类 116
6.2.3 ccmdtarget类 116
6.2.4 应用和线程类 117
6.2.5 窗口类 117
6.2.6 文档视图类 118
6.3 mfc框架程序分析 118
6.3.1 theapp全局对象 119
6.3.2 winmain()函数 121
6.3.3 afxwininit()函数 122
6.3.4 initapplication()函数 123
6.3.5 initinstance()函数 124
6.3.6 loadframe()函数 128
6.3.7 run()函数 131
6.3.8 终止应用程序 133
6.4 小结 133
第7章 mfc消息映射与消息传递机制 134
本章首先介绍了消息的一般种类,然后通过一个单文档类型的应用示例进一步挖掘mfc框架的消息映射机制,介绍了消息如何把相关信息放入消息映射数组中,并和相应的响应函数产生关联。最后介绍了几种常用的消息映射宏。
7.1 消息概述 134
7.1.1 队列消息和非队列消息 134
7.1.2 系统消息和应用程序消息 135
7.1.3 窗口消息、命令消息和控件通知 135
7.2 mfc消息映射机制 136
7.2.1 mfc消息处理 137
7.2.2 一个应用程序的消息映射分析 137
7.2.3 mfc消息映射的实现方法 139
7.2.4 消息映射宏的种类 142
7.3 小结 143
第8章 图形编程 144
本章首先讲述了mfc中关于gdi及绘图的相关知识,其主要内容包括:gdi、设备环境及其相关类、gdi对象、绘制简单图形、映射模式等内容,然后简单说明了在窗口中进行文本编辑的基本知识,最后通过一个简单实例对滚动条在视窗中的基本操作进行了描述。
8.1 绘制图形的相关知识 144
8.1.1 图形设备接口 144
8.1.2 逻辑空间和设备空间 145
8.1.3 设备环境 145
8.1.4 一个简单的图形程序 145
8.2 设备环境的相关类 147
8.2.1 cdc类 147
8.2.2 cpaintdc类 149
8.2.3 cclientdc类 151
8.2.4 cwindowdc类 152
8.3 gdi对象 153
8.3.1 gdi对象的种类 153
8.3.2 gdi对象的生命周期 153
8.4 绘制图形 155
8.4.1 绘制线条 156
8.4.2 绘制矩形 157
8.4.3 绘制椭圆 158
8.4.4 其他绘图方式 159
8.5 映射模式 162
8.5.1 坐标转换 162
8.5.2 映射模式 166
8.6 文本编程 168
8.6.1 插入符 168
8.6.2 文本的输入与显示 170
8.7 滚动视窗 175
8.7.1 滚动条 175
8.7.2 滚动视窗应用实例 176
8.8 小结 180
第9章 位图编程 181
本章首先阐述了mfc中位图的种类,然后讨论了如何利用cbitmap类来创建并使用设备相关类位图,特别是利用内存设备环境实现消除因多次重绘造成的闪烁现象。然后对调色板的种类、操作及事件进行了详细介绍。最后对设备无关类图的文件结构及操作进行了阐述,并对一个visual c++中的新功能cimage类进行了简述。
9.1 位图的种类 181
9.2 位图的显示 182
9.2.1 创建位图对象 182
9.2.2 加载和设置位图内容 183
9.2.3 显示位图 185
9.2.4 创建一个动画实例 186
9.3 调色板 190
9.3.1 调色板的种类 190
9.3.2 调色板的操作 190
9.3.3 调色板的事件 192
9.4 设备无关类位图 193
9.4.1 bmp图像文件的结构 193
9.4.2 位图操作 195
9.4.3 cimage类 198
9.5 小结 200
第10章 对话框 201
本章首先介绍了windows系统中一些常用的基本控件,并介绍了在对话框这个大容器里如何创建这些基本控件,同时简单阐述了几种常用的控件消息。在充分了解控件的基础上,分别介绍了模态和非模态对话框的创建。然后详细阐述了对话框的ddx和ddv机理,并通过一个简单实例进一步加深对其的理解。接下来结合一个实例对树形视图和列表视图控件进行了简单介绍,最后详细讨论了属性表单的概念、创建及处理等内容。
10.1 控件 201
10.1.1 常用控件介绍 201
10.1.2 控件的创建 202
10.1.3 控件的消息 204
10.2 对话框的创建 207
10.2.1 模态对话框的创建 207
10.2.2 非模态对话框的创建 210
10.3 对话框数据交换和验证 212
10.3.1 数据交换 212
10.3.2 数据验证 215
10.3.3 创建一个图形显示实例 216
10.4 树形视图和列表视图控件 219
10.4.1 树形视图控件 219
10.4.2 列表视图控件 221
10.4.3 创建一个通讯录实例 224
10.5 属性表单和向导的创建 227
10.5.1 创建属性页 227
10.5.2 创建属性表单 229
10.5.3 创建向导 231
10.5.4 创建一个可动态添加记录的通讯录 235
10.6 小结 239
第11章 应用程序界面的定制 240
本章首先介绍了如何自定义应用程序的窗口界面,并介绍了修改程序窗口的图标、光标和背景的实现方法。然后对windows应用程序的窗口界面的三要素:菜单、工具栏和状态栏进行了详细的介绍,包括菜单的创建、快捷菜单、动态动态更改菜单、工具栏的创建及状态栏的创建。并通过实例进一步理解如何对应用程序的界面进行定制。
11.1 自定义应用程序的窗口界面 240
11.2 菜单 243
11.2.1 菜单的创建 243
11.2.2 mfc中的菜单消息 244
11.2.3 快捷菜单 246
11.2.4 动态更改菜单 248
11.2.5 手工添加菜单的消息响应 251
11.3 工具栏 252
11.3.1 在工具栏上更改按钮 253
11.3.2 创建和初始化工具栏 253
11.4 状态栏 256
11.4.1 状态栏的创建 256
11.4.2 在状态栏上显示系统时间 258
11.5 小结 260
第12章 文件操作 261
本章主要讨论了与文件操作相关的内容,主要包括两大块:第一是利用api函数进行文件的读写操作及其他常用操作;第二是利用mfc中的一个基类cfile的成员函数进行文件的读写操作及其他常用操作。其中,还单独介绍了如何利用cfiledialog类创建文件对话框,该对话框主要包括“打开”对话框和“另存为”对话框。
12.1 api文件操作 261
12.1.1 文件的创建和打开 261
12.1.2 文件的读写 262
12.1.3 文件的读写实例 264
12.1.4 其他文件操作 266
12.2 mfc文件操作 267
12.2.1 cfile类简介 267
12.2.2 文件的读写 269
12.2.3 cfiledialog类 270
12.2.4 其他文件操作 273
12.3 小结 275
第13章 文档、视图和框架 276
本章首先介绍了文档/视图结构的基本概念,并通过单文档类和多文档类应用程序来分析文档/视图结构中各类之间的关系。然后分别对框架、文档和视图进行了详细介绍。接下来又介绍了分割式窗口,并对静态分割窗口和动态分割窗口运用实例进行了详细介绍。最后对文档的串行化及carchive对象进行了详细介绍,并利用一个绘图实例来进一步介绍实现串行化需要的操作。
13.1 文档/视图简介 276
13.1.1 文档/视图的基本概念 276
13.1.2 两类文档/视图结构分析 277
13.2 框架 281
13.2.1 框架窗口的组成 281
13.2.2 多文档框架类中的常用函数 284
13.3 文档 286
13.3.1 对视图的管理 286
13.3.2 新建或打开文档 288
13.3.3 文档的保存和关闭 290
13.4 视图 290
13.4.1 cview类 291
13.4.2 视图对象的创建 293
13.5 分割式窗口 295
13.5.1 创建静态分割窗口 296
13.5.2 创建动态分割窗口 300
13.6 文档与串行化 302
13.6.1 carchive类和cfile类 302
13.6.2 文档串行化 304
13.6.3 类串行化 305
13.6.4 串行化实例 306
13.7 小结 310
第14章 进程和线程 311
本章首先讲解了进程与线程的基本概念及其基本操作,然后对win32进程的创建和终止,以及子程序的创建进行了详细阐述,紧接着介绍了win32线程和mfc线程处理的相关函数,并以一个多线程操作实例进一步讲解了线程的应用。在多线程处理过程中介绍了如何使用同步对象来实现多线程的同步,以及多个同步对象在多线程中的实现。
14.1 进程和线程的基本概念 311
14.1.1 进程 311
14.1.2 线程 313
14.2 win32的进程处理 313
14.2.1 进程的创建和终止 313
14.2.2 进程的终止 315
14.2.3 进程信息的获取 315
14.2.4 子进程的创建 317
14.3 win32的线程处理 319
14.3.1 线程的创建 319
14.3.2 线程的终止 320
14.3.3 线程的优先级别 320
14.3.4 多线程实例 321
14.4 mfc的线程处理 327
14.4.1 线程的创建与终止 328
14.4.2 线程的消息循环 330
14.5 线程同步 331
14.5.1 同步对象 332
14.5.2 多个同步对象的应用 337
14.6 小结 340
第三篇 数据库编程
第15章 visual c++数据库开发技术概述 342
通过本章的学习,读者对visual c++的各种数据库开发技术有了大体了解。后面的章节将对各种技术作详细的讲解,并通过一个简单的通讯录实例讲述应用各种技术进行数据库应用程序开发的步骤。各种技术都用同一个实例,这样读者可以更清楚地对各种技术进行比较。
15.1 visual c++数据库开发特点 342
15.2 visual c++中的数据库开发技术 343
15.2.1 odbc api技术 343
15.2.2 mfc odbc技术 343
15.2.3 dao技术 343
15.2.4 ole db技术 343
15.2.5 ado技术 344
15.3 小结 344
第16章 odbc api编程 345
通过本章的学习,读者可以较清楚地了解odbc api编程技术。本章首先介绍了odbc的基本概念和组成结构;然后介绍了创建数据源的方法及odbc api编程的一般步骤;最后通过实例具体说明了如何使用odbc api对数据库进行操作。
16.1 odbc简介 345
16.2 使用odbc api进行数据库开发 345
16.2.1 创建odbc数据源 346
16.2.2 分配环境句柄 347
16.2.3 分配连接句柄 347
16.2.4 使用sqlconnect连接数据源 348
16.2.5 使用sqldriveconnect连接数据源 349
16.2.6 使用sqlbrowseconnect连接数据源 351
16.2.7 准备并执行sql操作 353
16.2.8 获取结果集 353
16.2.9 断开数据源连接并释放环境句柄 355
16.3 使用odbc api实现通讯录 355
16.3.1 数据库设计 355
16.3.2 添加数据源 356
16.3.3 界面设计 356
16.3.4 创建工程 356
16.3.5 添加类 357
16.3.6 创建数据库操作类 359
16.3.7 系统主界面 362
16.3.8 显示联系人信息 364
16.3.9 删除联系人信息 365
16.3.10 添加联系人信息 366
16.3.11 修改联系人信息 367
16.4 小结 367
第17章 mfc odbc编程 368
通过本章的学习,读者可以较清楚地了解mfc odbc编程技术。本章首先对mfc odbc技术进行了简要介绍;然后详细介绍了cdatabase类、crecordset类的使用方法;最后通过简单的通讯录实例,具体说明了如何使用mfc odbc对数据库进行操作。
17.1 mfc odbc简介 368
17.2 cdatabase类 368
17.2.1 连接数据源 369
17.2.2 执行sql语句 370
17.2.3 事务处理 370
17.2.4 断开数据源连接 371
17.3 crecordset类 371
17.3.1 记录集的分类 371
17.3.2 记录字段交换(rfx) 372
17.3.3 创建记录集类 372
17.3.4 记录集类成员变量 373
17.3.5 打开、关闭记录集 374
17.3.6 在记录集中滚动 374
17.3.7 添加记录 375
17.3.8 修改记录 376
17.3.9 删除记录 376
17.4 使用mfc odbc实现通讯录 376
17.4.1 创建工程 377
17.4.2 系统主界面 378
17.4.3 显示联系人信息 380
17.4.4 删除联系人信息 381
17.4.5 添加联系人信息 382
17.4.6 修改联系人信息 384
17.5 小结 385
第18章 mfc dao编程 386
通过本章的学习,读者可以较清楚地了解mfc dao编程技术。本章首先对mfc dao技术进行了简要介绍;然后详细介绍了cworkspace类、cdaodatabase类、cdaorecordset类的使用方法;最后通过简单的通讯录实例,具体说明了如何使用mfc dao对数据库进行操作。
18.1 dao简介 386
18.1.1 dao内部结构 386
18.1.2 mfc与dao 387
18.2 cdaoworkspace类 388
18.2.1 cdaoworkspace类简介 388
18.2.2 cdaoworkspace类数据成员 389
18.2.3 显示打开工作区 389
18.2.4 cdaoworkspace类常用函数 390
18.3 cdaodatabase类 391
18.3.1 cdaodatabase类简介 391
18.3.2 cdaodatabase类数据成员 391
18.3.3 新建数据库 391
18.3.4 打开数据库 393
18.3.5 关闭数据库 394
18.3.6 cdaodatabase类常用函数 394
18.4 cdaorecordset类 395
18.4.1 cdaorecordset类简介 395
18.4.2 cdaorecordset类数据成员 396
18.4.3 新建记录集 396
18.4.4 添加记录 397
18.4.5 修改记录 399
18.4.6 删除记录 400
18.4.7 cdaorecordset类常用函数 402
18.5 使用mfc dao实现通讯录 403
18.5.1 创建工程 403
18.5.2 添加cdaorecordset类 404
18.5.3 系统主界面 405
18.5.4 显示联系人信息 407
18.5.5 删除联系人信息 408
18.5.6 添加联系人信息 410
18.5.7 修改联系人信息 411
18.6 小结 412
第19章 ole db编程 413
通过本章的学习,读者可以较清楚地了解ole db编程技术。本章首先介绍了ole db的组成结构、对象模型及特点等基本知识,然后讲述了如何开发atl ole db应用程序。
19.1 ole db简介 413
19.1.1 通用数据访问 413
19.1.2 ole db的结构 414
19.1.3 ole db 模板、属性 414
19.2 开发atl ole db应用程序 415
19.2.1 创建应用程序架构 415
19.2.2 添加对客户模板的支持 415
19.2.3 修改clinkinfo类 416
19.2.4 系统主界面 418
19.2.5 显示联系人信息 420
19.2.6 删除联系人信息 420
19.2.7 添加联系人信息 421
19.2.8 修改联系人信息 422
19.3 小结 423
第20章 ado编程 424
本章首先介绍了ado对象模型,并对各个对象进行了详细的介绍,然后详细地讲解了ado编程的两种方法。最后通过简单的通信录实例,具体说明了如何使用ado对数据库进行操作。通过本章的学习,读者可以较清楚地了解ado编程技术。
20.1 ado简介 424
20.1.1 ado 对象模型 424
20.1.2 connection对象 425
20.1.3 command对象 425
20.1.4 recordset对象 426
20.1.5 parameter对象 428
20.1.6 field对象 428
20.1.7 property对象 429
20.1.8 error对象 429
20.1.9 开发ado应用程序的方法 430
20.2 使用activex控件开发ado应用程序 430
20.2.1 创建工程 430
20.2.2 添加ado的activex控件 431
20.2.3 添加datagrid控件 432
20.2.4 运行程序 433
20.3 使用ado对象控件开发应用程序 433
20.3.1 引入ado库文件 434
20.3.2 初始化com环境 434
20.3.3 ado智能指针 434
20.3.4 连接数据库 435
20.3.5 打开记录集 436
20.3.6 在记录集中移动 437
20.3.7 访问记录集中的数据 437
20.4 使用ado实现通信录 439
20.4.1 创建工程 439
20.4.2 系统主界面 439
20.4.3 显示联系人信息 441
20.4.4 删除联系人信息 443
20.4.5 添加联系人信息 445
20.4.6 修改联系人信息 446
20.5 小结 447
第四篇 网络通信编程
第21章 visual c++网络编程基础 450
本章简要介绍了网络编程相关的概念和基本知识,是本书网络编程部分的基础。通过本章的学习,读者应该了解常用的网络协议,了解套接字、客户机/服务器模式、网络字节顺序、半相关、全相关等网络编程相关的基本概念,并了解visual c++对进行网络编程所提供的支持。
21.1 网络协议 450
21.1.1 osi参考模型 450
21.1.2 tcp/ip参考模型 451
21.2 网络编程相关概念 452
21.2.1 客户机/服务器模式 452
21.2.2 套接字 452
21.2.3 网络字节顺序 452
21.2.4 半相关与全相关 453
21.3 visual c++对网络编程的支持 453
21.3.1 windows socket api 453
21.3.2 mfc winsock类 453
21.3.3 wininet支持 454
21.3.4 mapi支持 454
21.3.5 isapi支持 454
21.4 小结 455
第22章 windows socket api编程 456
windows socket api为windows下网络通信提供了一种强大的开发和运行环境,windows sockets已成为windows下标准的网络程序设计接口。本章主要讲述了windows sockets相关的概念及主要函数,并通过聊天室的实例,讲述了如何利用windows sockets进行网络程序的开发。
22.1 windows sockets概述 456
22.1.1 windows sockets的发展 456
22.1.2 windows sockets的类型 457
22.1.3 windows sockets扩展 457
22.1.4 套接字编程模型 458
22.2 windows socket api主要函数 459
22.2.1 初始化winsock 460
22.2.2 创建套接字 460
22.2.3 绑定地址 461
22.2.4 将套接字设置为监听状态 462
22.2.5 发送连接请求 463
22.2.6 接受连接请求 464
22.2.7 发送数据 465
22.2.8 接收数据 465
22.2.9 关闭套接字 466
22.2.10 关闭加载的套接字库 466
22.2.11 确定套接字状态 466
22.3 windows socket api编程步骤 467
22.3.1 引入所需文件 467
22.3.2 服务器端编程 468
22.3.3 客户端编程 469
22.4 基于winsock的简单聊天室的实现 470
22.4.1 系统总体设计 470
22.4.2 创建服务器端工程 471
22.4.3 添加服务器端代码 472
22.4.4 服务器线程 474
22.4.5 创建客户端工程 475
22.4.6 添加客户端代码 475
22.4.7 客户端线程 476
22.5 小结 477
第23章 mfc socket编程 478
本章首先对casyncsocket类、csocket类的成员函数与变量进行了详细介绍,然后介绍了winsock类的一般编程步骤,最后通过一个简单文件发送实例演示了如何使用csocket类进行网络编程。通过本章的学习,读者可以对winsock类的成员函数、变量及编程步骤有深入了解,较清楚地了解winsock类编程技术。
23.1 casyncsocket类 478
23.1.1 成员变量和构造函数 478
23.1.2 绑定地址 479
23.1.3 将套接字设置为监听状态 480
23.1.4 发送连接请求 481
23.1.5 接受连接请求 482
23.1.6 控制套接字模式 483
23.1.7 发送数据 483
23.1.8 接收数据 485
23.1.9 断开数据传输 487
23.1.10 关闭套接字 487
23.1.11 网络事件处理 488
23.1.12 属性函数 488
23.1.13 消息处理函数 492
23.2 csocket类 493
23.2.1 构造函数 493
23.2.2 属性函数 494
23.2.3 操作函数 495
23.2.4 消息处理函数 495
23.3 编程模型 495
23.3.1 casyncsocket类编程模型 495
23.3.2 csocket类编程模型 496
23.4 利用csocket类实现文件传输 497
23.4.1 系统总体设计 497
23.4.2 创建工程 498
23.4.3 发送程序代码 498
23.4.4 接收程序代码 500
23.5 小结 502
第24章 wininet编程 503
通过本章的学习,读者可以较清楚地了解wininet编程技术。本章首先介绍了wininet的基本概念、wininet api主要函数及mfc wininet类,最后通过一个简单的ftp客户端实例,演示了如何使用wininet类进行internet客户端编程。
24.1 wininet api简介 503
24.1.1 通用wininet api函数 503
24.1.2 http函数 504
24.1.3 ftp函数 505
24.1.4 gopher函数 506
24.2 mfc wininet类 506
24.2.1 cinternetsession类 506
24.2.2 cinternetconnection类 508
24.2.3 chttpconnection类 509
24.2.4 cftpconnection类 510
24.2.5 cgopherconnection类 511
24.2.6 cinternetfile类 512
24.2.7 chttpfile类 513
24.2.8 cgopherfile类 515
24.2.9 cfilefind类 515
24.2.10 cftpfilefind类 516
24.2.11 cgopherfilefind类 517
24.2.12 cgopherlocator类 518
24.2.13 cinternetexception类 518
24.3 用wininet类进行编程 518
24.3.1 http客户端编程步骤 519
24.3.2 ftp客户端编程步骤 520
24.3.3 gopher客户端编程步骤 521
24.4 利用wininet类实现ftp客户端 521
24.4.1 系统总体设计 521
24.4.2 创建工程 522
24.4.3 连接ftp服务器 523
24.4.4 获取当前目录所有文件 524
24.4.5 返回上级目录 524
24.4.6 下载文件 525
24.4.7 上传文件 526
24.5 小结 526
第五篇 windows组件编程
第25章 编写动态链接库 528
在windows系统中动态链接库随处可见,动态链接库是windows编程中很重要的一部分,尤其是对于大型的应用程序,往往需要将很多功能封装在动态链接库中。本章比较全面地介绍了动态链接库的基本理论和概念,并以实例的形式演示了动态链接库的编写与使用。
25.1 动态链接库简介 528
25.1.1 静态链接与动态链接 528
25.1.2 动态链接库的优点 529
25.2 创建动态链接库 529
25.2.1 创建工程 529
25.2.2 添加代码 530
25.2.3 从dll导出 531
25.2.4 函数匹配 533
25.2.5 dll入口函数 533
25.3 使用动态链接库 534
25.3.1 一个使用dll的例子 534
25.3.2 隐式调用和显式调用 535
25.4 动态链接库实例——读写配置文件 536
25.4.1 创建工程 536
25.4.2 设置头文件 537
25.4.3 读取一行数据 538
25.4.4 设置一行数据 539
25.4.5 读取多行数据 540
25.4.6 设置多行数据 541
25.5 小结 543
第26章 使用与编写activex控件 544
activex控件是基于组件对象模型(com)的可重用软件组件,它支持广泛的ole功能并可自定义以满足多种软件的需要。activex控件可以在自己的窗口中对自身进行描述,对事件(如单击鼠标)做出响应,并且可以通过包括属性和方法的接口进行管理,这些属性和方法与自动化对象中的属性和方法相似。本章还介绍了activex控件相关的一些基本概念,通过本章的学习,读者应该能够掌握如何创建和测试简单的activex控件。
26.1 activex控件简介 544
26.1.1 activex控件的发展 544
26.1.2 activex控件属性、事件和方法 545
26.1.3 mfc对activex控件的支持 546
26.2 使用activex控件 546
26.2.1 浏览activex控件 546
26.2.2 在工程中添加activex控件 547
26.2.3 设置activex控件属性 548
26.2.4 使用activex控件类 548
26.3 编写activex控件 549
26.3.1 创建activex工程 549
26.3.2 绘制控件 552
26.3.3 添加控件属性 553
26.3.4 添加控件方法 554
26.3.5 添加控件事件 554
26.3.6 注册activex控件 555
26.3.7 测试activex控件 557
26.4 小结 558
第六篇 综合实例
第27章 人事管理系统的设计与实现 560
本章通过一个人事管理系统的实例,展示了visual c++技术的综合应用,就该系统本身而言,许多细节考虑还不够周密,功能还很不完善,如没有实现部门信息的管理、职位的管理等。本章旨在通过一个实例,使读者对visual c++编程技术有一个整体的认识。
27.1 系统总体设计 560
27.1.1 系统功能 560
27.1.2 数据库设计 561
27.2 系统的实现 563
27.2.1 创建工程 563
27.2.2 应用程序主框架 564
27.2.3 连接、断开数据库 565
27.2.4 用户登录模块 566
27.2.5 系统主界面 567
27.2.6 添加新员工模块 568
27.2.7 修改员工信息模块 571
27.2.8 出勤记录管理模块 576
27.2.9 请假记录管理模块 580
27.2.10 加班记录管理模块 584
27.2.11 出差记录管理模块 588
27.3 小结 592
第28章 聊天室的设计与实现 593
通过本章所讲解的内容,使读者了解了聊天程序的具体编写过程。本章的程序只是一个聊天室的示例,并不是一个完善的、功能齐全的聊天室软件,旨在使读者了解visual c++网络编程的原理和步骤。感兴趣的读者可以在此基础上进行扩充,以编写出功能更强大的聊天室软件。
28.1 聊天室程序功能说明 593
28.1.1 服务器端功能介绍 593
28.1.2 客户端功能介绍 593
28.1.3 消息类的定义 594
28.2 服务器端应用程序 595
28.2.1 建立服务器应用程序框架 595
28.2.2 侦听套接字类 596
28.2.3 客户套接字类 597
28.2.4 服务器主界面类 599
28.3 客户端应用程序 601
28.3.1 客户端套接字类 602
28.3.2 客户端主界面类 602
28.4 小结 606
Visual C++从初学到精通
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×
亲爱的云图用户,
光盘内的文件都可以直接点击浏览哦
无需下载,在线查阅资料!
