<p>《VC++深入详解》主要从程序内部运行的机制和MFC程序的组织脉络入手,使读者在学习VC++编程知识时,既能够知其然,又能知其所以然,从而帮助读者从根本上理解和掌握Windows的程序设计。另外,《VC++深入详解》还贯穿作者多年来学习编程的一些经验,以及一些学习方法的建议,为读者进一步的学习提供指导。</p> <p></p> <p> 《VC++深入详解》从实际应用入手,由浅入深、循序渐进地讲述Windows程序内部运行机制、MFC框架、文本、菜单、对话框、文件操作、网络编程、进程间通信、ActiveX控件、动态链接库、HOOK编程等多个主题。</p> <p> 《VC++深入详
VC++深入详解(第3版)(基于Visual Studio 2017)
✍ Scribed by 孙鑫
- Publisher
- 电子工业出版社
- Year
- 2019
- Tongue
- Chinese
- Leaves
- 750
- Series
- 孙鑫精品图书系列
- Edition
- 3
- Category
- Library
No coin nor oath required. For personal study only.
✦ Synopsis
《VC++深入详解(第3版)(基于Visual Studio 2017)》在内容的组织上循序渐进、由浅入深;在知识的介绍上,从内到外、从原理到实践。
第1章首先为读者介绍了Visual Studio 2017的安装和使用,以及离线MSDN的安装。第2章帮助读者掌握Windows平台下程序运行的内部机制。第3章帮助读者复习C++中的重要知识,为后续知识的学习打下良好的基础。第4章重点剖析MFC框架程序的运行脉络,并与第2章的知识做对照,为读者彻底扫清学习MFC的迷雾。相信通过这一章的学习,很多以前学过MFC的读者都会有一种恍然大悟的感觉。前四章可以归为基础部分,从第5章开始就是实际应用开发的讲解了,包括绘图、文本、菜单、对话框、定制程序外观、图形保存和重绘、文件和注册表操作、网络编程、多线程、进程间通信、ActiveX控件、动态链接库、HOOK编程等多个主题,并且每一章都有一个完整的例子。
《VC++深入详解(第3版)(基于Visual Studio 2017)》读者群包括:
掌握了C语言,想进一步学习Windows编程的读者。
学习VC++多年,但始终没有真正入门的读者。
正在从事VC++开发的初级程序员。
有一定VC++开发经验,想要系统地学习VC++的读者。
✦ Table of Contents
封面
书名页
版权页
前言
目录
第1章 准备开发环境
1.1 下载并安装Visual Studio 2017
1.2 运行第一个程序——Hello World
1.3 安装离线MSDN
1.4 小结
第2章 Windows程序内部运行机制
2.1 API与SDK
2.2 窗口与句柄
2.3 消息与消息队列
2.4 WinMain函数
2.4.1 WinMain函数的定义
2.4.2 窗口的创建
2.4.3 消息循环
2.4.4 编写窗口过程函数
2.5 动手写第一个Windows程序
2.6 消息循环的错误分析
2.7 变量的命名约定
2.8 小结
第3章 掌握C++
3.1 从结构到类
3.1.1 结构体的定义
3.1.2 结构体与类
3.2 C++的特性
3.2.1 类与对象
3.2.2 构造函数
3.2.3 析构函数
3.2.4 函数的重载
3.2.5 this指针
3.2.6 类的继承
3.2.7 虚函数与多态性、纯虚函数
3.2.8 函数的覆盖和隐藏
3.2.9 引用
3.2.10 C++类的设计习惯及头文件重复包含问题的解决
3.2.11 VC++程序编译链接的原理与过程
第4章 MFC框架程序剖析
4.1 MFC应用程序向导
4.2 基于MFC的程序框架剖析
4.2.1 MFC程序中的WinMain函数
4.2.2 MFC框架窗口
4.2.3 消息循环
4.2.4 窗口过程函数
4.2.5 文档/视类结构
4.2.6 帮助对话框类
4.3 窗口类、窗口类对象与窗口
4.3.1 三者之间关系
4.3.2 在窗口中显示按钮
4.4 本章小结
第5章 简单绘图
5.1 MFC消息映射机制
5.1.1 类向导
5.1.2 消息映射机制
5.2 绘制线条
5.2.1 利用SDK全局函数实现画线功能
5.2.2 利用MFC的CDC类实现画线功能
5.2.3 利用MFC的CClientDC类实现画线功能
5.2.4 利用MFC的CWindowDC类实现画线功能
5.2.5 在桌面窗口中画线
5.2.6 绘制彩色线条
5.3 使用画刷绘图
5.3.1 简单画刷
5.3.2 位图画刷
5.3.3 透明画刷
5.4 绘制连续线条
5.5 绘制扇形效果的线条
5.6 本章小结
第6章 文本编程
6.1 插入符
6.1.1 创建文本插入符
6.1.2 创建图形插入符
6.2 窗口重绘
6.2.1 OnDraw函数
6.2.2 添加字符串资源
6.3 路径
6.4 字符输入
6.4.1 设置字体
6.4.2 字幕变色功能的实现
6.5 本章小结
第7章 菜单
7.1 菜单命令响应函数
7.2 菜单命令的路由
7.2.1 程序类对菜单命令的响应顺序
7.2.2 Windows消息的分类
7.2.3 菜单命令路由的过程
7.3 基本菜单操作
7.3.1 标记菜单
7.3.2 默认菜单项
7.3.3 图形标记菜单
7.3.4 禁用菜单项
7.3.5 移除和装载菜单
7.3.6 MFC菜单命令更新机制
7.3.7 快捷菜单
7.4 动态菜单操作
7.4.1 添加菜单项目
7.4.2 插入菜单项目
7.4.3 删除菜单
7.4.4 动态添加的菜单项的命令响应
7.5 电话本示例程序
7.5.1 动态添加子菜单的实现
7.5.2 显示输入的字符
7.5.3 添加菜单项及其命令响应函数
7.5.4 框架类窗口截获菜单命令消息
7.6 本章小结
第8章 对话框(一)
8.1 对话框基本知识
8.1.1 常用控件介绍
8.1.2 对话框的种类
8.2 对话框的创建和显示
8.2.1 模态对话框的创建
8.2.2 非模态对话框的创建
8.3 动态创建按钮
8.4 控件的访问
8.4.1 控件的调整
8.4.2 静态文本控件
8.4.3 编辑框控件
8.5 对话框伸缩功能的实现
8.6 输入焦点的传递
8.7 默认按钮的进一步说明
8.8 本章小结
第9章 对话框(二)
9.1 “逃跑”按钮的实现
9.2 属性表单和向导的创建
9.2.1 创建属性页
9.2.2 创建属性表单
9.2.3 向导的创建
9.3 本章小结
附录
第10章 定制应用程序外观
10.1 修改应用程序窗口的外观
10.1.1 在窗口创建之前修改
10.1.2 在窗口创建之后修改
10.2 修改窗口的光标、图标和背景
10.2.1 在窗口创建之前修改
10.2.2 在窗口创建之后修改
10.3 模拟动画图标
10.3.1 加载图标资源
10.3.2 定时器的处理
10.4 工具栏编程
10.4.1 在工具栏上添加和删除按钮
10.4.2 创建工具栏
10.5 状态栏编程
10.6 进度栏编程
10.6.1 在窗口中创建进度栏
10.6.2 在状态栏的窗格中创建进度栏
10.7 在状态栏上显示鼠标当前位置
10.8 本章小结
第11章 绘图控制
11.1 简单绘图
11.2 设置对话框
11.2.1 设置线宽
11.2.2 设置线型
11.3 颜色对话框
11.4 字体对话框
11.5 示例对话框
11.6 改变对话框和控件的背景及文本颜色
11.6.1 改变整个对话框及其上子控件的背景色
11.6.2 仅改变某个子控件的背景及文本颜色
11.6.3 改变控件上的文本字体
11.6.4 改变按钮控件的背景色及文本颜色
11.7 位图的显示
11.8 本章小结
第12章 图形的保存和重绘
12.1 坐标空间和转换
12.1.1 坐标空间
12.1.2 转换
12.1.3 逻辑坐标和设备坐标
12.2 图形的保存和重绘
12.2.1 集合类CPtrArray
12.2.2 OnPaint与OnDraw
12.3 窗口滚动功能的实现
12.3.1 CScrollView类
12.3.2 图形错位现象
12.4 元文件
12.4.1 元文件的使用
12.4.2 元文件的保存与打开
12.5 兼容设备描述表
12.6 本章小结
第13章 文件和注册表操作
13.1 const char*和char* const
13.1.1 const char*
13.1.2 char* const
13.2 C语言对文件操作的支持
13.2.1 文件的打开
13.2.2 文件的写入
13.2.3 文件的关闭
13.2.4 fflush函数
13.2.5 文件指针定位
13.2.6 文件的读取
13.2.7 二进制文件和文本文件
13.2.8 文本方式和二进制方式
13.3 C++对文件操作的支持
13.4 Win32 API对文件操作的支持
13.4.1 文件的创建和打开
13.4.2 文件的写入
13.4.3 文件的读取
13.5 MFC对文件操作的支持
13.5.1 文件的写入
13.5.2 文件的读取
13.5.3 CFileDialog类
13.6 INI文件的访问
13.6.1 INI文件的结构
13.6.2 INI文件的写入
13.6.3 INI文件的读取
13.7 CWinApp的注册表读写函数
13.8 注册表的编程
13.8.1 注册表API
13.8.2 注册表访问示例
13.9 本章小结
第14章 文档与串行化
14.1 使用CArchive类对文件进行读写操作
14.2 MFC框架程序提供的文件新建功能
14.2.1 IDR MAINFRAME字符串资源
14.2.2 OnNewDocument函数的调用过程
14.3 文档串行化
14.3.1 文档类的Serialize函数
14.3.2 MFC框架对Serialize函数的调用过程
14.4 可串行化的类
14.4.1 实现类对串行化的支持
14.4.2 利用可串行化类的Serialize函数保存和加载对象
14.4.3 版本号
14.4.4 利用CObArray类对串行化的支持保存和加载数据
14.5 文档对象数据的销毁
14.6 本章小结
第15章 网络编程
15.1 计算机网络基本知识
15.1.1 IP地址
15.1.2 协议
15.1.3 网络的状况
15.1.4 网络异质性问题的解决
15.1.5 ISO/OSI七层参考模型
15.1.6 数据封装
15.1.7 TCP/IP模型
15.1.8 端口
15.1.9 套接字(socket)的引入
15.1.10 网络字节顺序
15.1.11 客户机/服务器模式
15.2 Windows Sockets的实现
15.2.1 套接字的类型
15.2.2 基于TCP(面向连接)的socket编程
15.2.3 基于UDP(面向无连接)的socket编程
15.3 相关函数
15.3.1 WSAStartup函数
15.3.2 socket函数
15.3.3 bind函数
15.3.4 inet addr和inet ntoa函数
15.3.5 inet_pton和inet ntop函数
15.3.6 listen函数
15.3.7 accept函数
15.3.8 send函数
15.3.9 recv函数
15.3.10 connect
15.3.11 recvfrom
15.3.12 sendto函数
15.3.13 htons和htonl函数
15.4 基于TCP的网络应用程序的编写
15.4.1 服务器端程序
15.4.2 客户端程序
15.5 基于UDP的网络应用程序的编写
15.5.1 服务器端程序
15.5.2 客户端程序
15.6 基于UDP的简单聊天程序
15.6.1 服务器端程序
15.6.2 客户端程序
15.7 本章小结
第16章 多线程
16.1 基本概念
16.1.1 进程
16.1.2 线程
16.2 线程创建函数
16.3 简单多线程示例
16.4 线程同步
16.4.1 火车站售票系统模拟程序
16.4.2 多线程程序容易出现的问题
16.4.3 利用互斥对象实现线程同步
16.5 保证应用程序只有一个实例运行
16.6 网络聊天室程序的实现
16.6.1 加载套接字库
16.6.2 创建并初始化套接字
16.6.3 实现接收端功能
16.6.4 实现发送端功能
16.7 本章小结
第17章 线程同步与异步套接字编程
17.1 事件对象
17.1.1 创建事件对象
17.1.2 设置事件对象状态
17.1.3 重置事件对象状态
17.1.4 利用事件对象实现线程同步
17.1.5 保证应用程序只有一个实例运行
17.2 关键代码段
17.2.1 相关的API函数
17.2.2 利用关键代码段实现线程同步
17.3 线程死锁
17.4 互斥对象、事件对象与关键代码段的比较
17.5 基于消息的异步套接字
17.5.1 相关函数说明
17.5.2 网络聊天室程序的实现
17.6 本章小结
第18章 进程间通信
18.1 剪贴板
18.1.1 数据发送
18.1.2 数据接收
18.2 匿名管道
18.2.1 基础知识
18.2.2 进程的创建
18.2.3 父进程的实现
18.2.4 子进程的实现
18.3 命名管道
18.3.1 基础知识
18.3.2 服务器端程序
18.3.3 客户端程序
18.4 邮槽
18.4.1 服务器端程序
18.4.2 客户端程序
18.5 本章小结
第19章 ActiveX控件
19.1 ActiveX控件
19.1.1 ActiveX控件的好处
19.1.2 MFC ActiveX控件向导
19.1.3 ActiveX控件的注册
19.1.4 ActiveX控件的测试
19.1.5 时钟控件的实现
19.2 属性
19.2.1 标准属性
19.2.2 自定义属性
19.3 方法
19.4 事件
19.4.1 标准事件
19.4.2 自定义事件
19.5 属性的持久性
19.6 环境属性
19.7 ActiveX控件测试程序
19.8 本章小结
第20章 动态链接库
20.1 动态链接库概述
20.1.1 静态库和动态库
20.1.2 使用动态链接库的好处
20.1.3 动态链接库的加载
20.2 DLL的创建和使用
20.2.1 Dumpbin命令
20.2.2 从DLL中导出函数
20.3 隐式链接方式加载DLL
20.3.1 利用extern声明外部函数
20.3.2 Dependency Walker工具
20.3.3 利用_declspec(dllimport)声明外部函数
20.4 完善DLL例子
20.5 从DLL中导出C++类
20.6 解决名字改编问题
20.7 显示加载方式加载DLL
20.7.1 LoadLiba函数
20.7.2 调用约定
20.7.3 根据序号访问DLL中的导出函数
20.8 DllMain函数
20.9 MFC DLL
20.10 本章小结
第21章 HOOK编程
21.1 HOOK编程
21.1.1 基本知识
21.1.2 进程内钩子
21.1.3 全局钩子
21.2 本章小结
封底
📜 SIMILAR VOLUMES
<p>《ServletJSP深入详解——基于Tomcat的Web开发(畅销书升级版)》共分3篇,分别为Servlet篇、JSP篇及其应用篇,书中展示了Java Web开发中各种技术的应用,帮助读者快速掌握Java Web开发。</p> <p>在知识的讲解上,本书采用理论与实践相结合的方式,从程序运行的内部机制进行分析讲解,并通过大量的实例和实验来验证并运用本书的知识。大部分章节都提供了多个例子,而且很多例子都是目前Web开发中经常使用的,具有相当高的实用价值。</p> <p>《ServletJSP深入详解——基于Tomcat的Web开发(畅销书升级版)》不仅可以作为Java Web开发的学
书签已装载, 书签制作方法请找 [email protected] 完全免费 《汇编语言:基于linux环境(第3版)》是风靡美国的经典汇编语言畅销书籍的最新版,美国计算机领域著名作者jeffduntemann的力作。作者以其渊博的专业知识,丰富的实战经验,结合生动详尽的实例,全面系统地介绍了linux环境下如何使用汇编语言进行程序设计以及与之有关的背景知识和相关工具的使用。本书写作风格独特,全书采用作者最有特色的对话式风格,结合大量源于生活的暗喻,将晦涩难懂的知识点条分缕析地呈现出来,以便读者能以轻松愉快的心情学习。 《汇编语言:基于linux环境(第3版)》适
<p>和第2版相比,本版内容上*大的变化是,从以IA32和x86-64为基础转变为完全以x86-64为基础。主要更新如下:</p> <p>基于x86-64,大量地重写代码,首次介绍对处理浮点数据的程序的机器级支持。</p> <p>处理器体系结构修改为支持64位字和操作的设计。</p> <p>引入更多的功能单元和更复杂的控制逻辑,使基于程序数据流表示的程序性能模型预测更加可靠。</p> <p>扩充关于用GOT和PLT创建与位置无关代码的讨论,描述了更加强大的链接技术(比如库打桩)。</p> <p>增加了对信号处理程序更细致的描述,包括异步信号安全的函数等。</p> <p>采用新函数,
<p>和第2版相比,本版内容上*大的变化是,从以IA32和x86-64为基础转变为完全以x86-64为基础。主要更新如下:</p> <p>基于x86-64,大量地重写代码,首次介绍对处理浮点数据的程序的机器级支持。</p> <p>处理器体系结构修改为支持64位字和操作的设计。</p> <p>引入更多的功能单元和更复杂的控制逻辑,使基于程序数据流表示的程序性能模型预测更加可靠。</p> <p>扩充关于用GOT和PLT创建与位置无关代码的讨论,描述了更加强大的链接技术(比如库打桩)。</p> <p>增加了对信号处理程序更细致的描述,包括异步信号安全的函数等。</p> <p>采用新函数,
书签已装载, 书签制作方法请找 [email protected] 完全免费 和第2版相比,本版内容上*大的变化是,从以IA32和x86-64为基础转变为完全以x86-64为基础。主要更新如下: 基于x86-64,大量地重写代码,首次介绍对处理浮点数据的程序的机器级支持。 处理器体系结构修改为支持64位字和操作的设计。 引入更多的功能单元和更复杂的控制逻辑,使基于程序数据流表示的程序性能模型预测更加可靠。 扩充关于用GOT和PLT创建与位置无关代码的讨论,描述了更加强大的链接技术(比如库打桩)。 增加了对信号处理程序更细致的描述,包括异步信号安全的函数等。