正版全新Visual C# 2017程序设计从零开始学+VC++深入详解 第3版书籍pdf下载pdf下载

正版全新Visual C# 2017程序设计从零开始学+VC++深入详解 第3版书籍百度网盘pdf下载

作者:
简介:本篇主要提供正版全新Visual C# 2017程序设计从零开始学+VC++深入详解 第3版书籍pdf下载
出版社:
出版时间:
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍


Visual C# 2017程序设计从零开始学

丰富范例精要讲解Visual C#语言

作者:李馨

定价:89元

印次:1-1

ISBN:9787302528838

出版日期:2019.07.01

印刷日期:2019.06.21

图书简介

随着Visual Studio 2017集成开发工具的更新,Visual C#语言已成为高效开发基于微软.NET网络框架的各种应用程序工具。

本书针对零基础用户,以丰富的范例程序和精要的表达方式讲解Visual C#语言。全书内容分4部分讲解,程序基础篇(第1~5章)介绍变量、常数基本数据类型的使用、流程控制的条件选择和循环以及数组和字符串等;对象使用篇(第6~9章)探讨面向对象程序设计的三大特性,即继承、封装和多态,了解集合的特性等;Windows接口篇(第10~14章)以Windows Form为主,了解MDI窗体的工作方式,认识鼠标事件及键盘事件,从窗体的坐标认识画布的基本运行方式,同时介绍Graphics类绘图的相关方法;应用篇(第15和16章)探讨System.IO命名空间和数据流的关系,由关系型数据库的概念入手,以Access数据库为模板,配合DataGridView控件显示数据表的记录。

学习程序设计语言的捷径就是以范例程序为蓝本,动手编写、修改、调试、测试范例程序中使用的范例文件和范例数据库。丰富的范例讲解和每章后的习题实践,适合对Visual C#语言感兴趣及想对.NET Framework类库有更多认识的读者学习与参考。

目  录

第1篇  程序基础篇

第1章  Visual Studio快速入门

1

1.1  从.NET Framework说起

2

1.1.1  公共语言运行库

2

1.1.2  .Net Framework类库

2

1.1.3  程序的编译

3

1.2  认识Visual Studio 2017

3

1.2.1  Visual Studio 2017的版本

4

1.2.2  下载、安装Visual Studio 2017

4

1.2.3  启动Visual Studio 2017

7

1.2.4  扩充其他模块

9

1.3  Visual Studio 2017的工作环境

11

1.3.1  “解决方案资源管理器”窗口

11

1.3.2  工具箱

12

1.3.3  “属性”窗口

13

1.3.4  工作区

14

1.4  创建项目和获取帮助

16

1.4.1  启动软件和创建项目

16

1.4.2  打开和关闭项目

19

1.4.3  项目的启动和卸除

20

1.4.4  帮助(Help)查看器

22

1.5  重点整理

25

1.6  课后习题

26

第2章  开始编写应用程序

27

2.1  C#应用程序的两个模板

28

2.1.1  认识Visual C#语言

28

2.1.2  我的控制台程序

28

2.1.3  生成可执行程序再运行

31

2.1.4  Windows 窗体应用程序

32

2.2  Visual C#的编写风格

36

2.2.1  程序语句

36

2.2.2  程序的编排

37

2.2.3  在程序中添加注释

39

2.3  C# 程序设计语言的结构

40

2.3.1  命名空间

40

2.3.2  善用IntelliSense功能

42

2.3.3  输入与输出

45

2.3.4  格式化输出

47

2.4  重点整理

50

2.5  课后习题

50

第3章  数据与变量

52

3.1  认识通用类型

53

3.1.1  整数类型

53

3.1.2  浮点数类型和货币

58

3.1.3  其他数据类型

59

3.2  变量与常数

60

3.2.1  标识符的命名规则

61

3.2.2  关键字

61

3.2.3  声明变量

62

3.2.4  常数

64

3.3  自定义类型与转换

65

3.3.1  枚举类型

65

3.3.2  结构

67

3.3.3  隐式类型转换

69

3.3.4  显式类型转换

71

3.4  运算符

74

3.4.1  算术运算符

75

3.4.2  赋值运算符

76

3.4.3  关系运算符

77

3.4.4  逻辑运算符

79

3.4.5  运算符的优先级

80

3.5  重点整理

81

3.6  课后习题

81

第4章  流程控制

83

4.1  认识结构化程序

84

4.2  条件选择

84

4.2.1  单一条件选择

85

4.2.2  双重条件选择

87

4.2.3  嵌套if语句

89

4.2.4  多重条件选择

92

4.3  循环

96

4.3.1  for循环

96

4.3.2  while循环

100

4.3.3  do/while循环

102

4.3.4  嵌套for 循环语句

103

4.3.5  其他语句

105

4.4  重点整理

106

4.5  课后习题

107

第5章  数组和字符串

109

5.1  数组

110

5.1.1  声明一维数组

110

5.1.2  数组元素的存取

112

5.2  Array类

114

5.2.1  排序与查找

114

5.2.2  改变数组的大小

117

5.2.3  数组的复制

118

5.3  数组结构面面观

120

5.3.1  创建二维数组

120

5.3.2  二维数组初始化

120

5.3.3  不规则数组

124

5.3.4  隐式类型数组

126

5.4  字符和字符串

128

5.4.1  转义字符序列

128

5.4.2  String类创建字符串

128

5.4.3  字符串常用方法

130

5.4.4  StringBuilder类修改字符串内容

134

5.5  重点整理

138

5.6  课后习题

138

第2篇  对象学习篇

第6章  学习面向对象

141

6.1  面向对象的基础

142

6.1.1  认识对象

142

6.1.2  提供蓝图的类

142

6.1.3  抽象化概念

143

6.2  类、对象和其成员

144

6.2.1  定义类

144

6.2.2  实例化对象

145

6.2.3  访问权限

147

6.2.4  定义方法成员

147

6.2.5  类属性和存取器

150

6.3  对象旅程

155

6.3.1  产生构造函数

155

6.3.2  析构函数回收资源

157

6.3.3  使用默认构造函数

158

6.3.4  构造函数的重载

158

6.3.5  对象的初始设置

160

6.4  静态类

161

6.4.1  静态属性

161

6.4.2  类静态方法

163

6.4.3  私有的构造函数

164

6.5  重点整理

167

6.6  课后习题

168

第7章  方法和传递机制

171

7.1  方法是什么

172

7.1.1 内建的方法

172

7.1.2  方法的声明

174

7.1.3  方法的重载

179

7.2  参数的传递机制

182

7.2.1  传值调用

183

7.2.2  传址调用

184

7.3  方法的传递对象

186

7.3.1  以对象为传递对象

186

7.3.2  参数params

187

7.3.3  关键字ref和out的不同

188

7.3.4  更具弹性的命名参数

190

7.3.5  选择性参数

191

7.4  了解变量的作用域

192

7.5  重点整理

194

7.6  课后习题

194

第8章  继承、多态和接口

197

8.1  了解继承

198

8.1.1  特化和泛化

198

8.1.2  组合关系

199

8.1.3  为什么要有继承机制

199

8.2  单一继承制

199

8.2.1  继承的存取(访问)

200

8.2.2  访问权限修饰词protected

203

8.2.3  调用基类成员

205

8.2.4  隐藏基底成员

211

8.3  探讨多态

215

8.3.1  父、子类产生方法重载

215

8.3.2  覆盖基类

216

8.3.3  实现多态

217

8.4  接口和抽象类

221

8.4.1  定义抽象类

221

8.4.2  认识密封类

223

8.4.3  接口的声明

224

8.4.4  如何实现接口

225

8.4.5  实现多个接口

227

8.4.6  接口实现多态

229

8.5  重点整理

230

8.6  课后习题

231

第9章  泛型、集合和异常处理

234

9.1  泛型

235

9.1.1  认识泛型与非泛型

235

9.1.2  为什么使用泛型

236

9.1.3  定义泛型

237

9.1.4  泛型方法

239

9.2  浅谈集合

240

9.2.1  System.Collections.Generic命名空间

241

9.2.2  认识索引键/值

241

9.2.3  使用索引

244

9.2.4  顺序访问的集合

250

9.3  委托

252

9.3.1  认识委托

252

9.3.2  Lambda表达式

255

9.4  异常情况的处理

256

9.4.1  认识Exception类

256

9.4.2  简易的异常处理器

257

9.4.3  finally语句

261

9.4.4  使用throw抛出异常情况

262

9.5  重点整理

263

9.6  课后习题

264

第3篇  Windows接口篇

第10章  Windows窗体的运行

267

10.1  Windows窗体的基本操作

268

10.1.1  创建Windows 窗体项目

268

10.1.2  创建用户界面

269

10.1.3  编写程序代码

273

10.1.4  存储程序的位置

276

10.2  Windows的运行

276

10.2.1  部分类是什么

277

10.2.2  Main()主程序在哪里

278

10.2.3  消息循环

279

10.2.4  控件与环境属性

280

10.3  窗体与按钮

284

10.3.1  窗体的属性

284

10.3.2  窗体的常用方法

286

10.3.3  窗体的事件

286

10.3.4  Button控件

289

10.4  MessageBox类

289

10.4.1  显示消息

290

10.4.2  按钮的枚举成员

290

10.4.3  图标的枚举成员

291

10.4.4  DialogResult如何接收

292

10.5  重点整理

295

10.6  课后习题

295

第11章  公共控件

298

11.1  显示信息

299

11.1.1  标签控件

299

11.1.2  超链接控件

302

11.1.3  窗体上控件的顺序

307

11.2  文字编辑

309

11.2.1  TextBox控件

310

11.2.2  RichTextBox控件

318

11.2.3  计时的Timer组件

324

11.3  日期处理

326

11.3.1  MonthCalendar控件

326

11.3.2  DateTimePicker

332

11.4  重点整理

336

11.5  课后习题

337

第12章  提供互动的对话框

339

12.1  认识对话框

340

12.2  文件对话框

340

12.2.1  OpenFileDialog

340

12.2.2  SaveFileDialog

343

12.2.3  FolderBrowserDialog

347

12.3  设置字体与颜色

351

12.3.1  FontDialog

351

12.3.2  ColorDialog

352

12.4  支持打印的组件

356

12.4.1  PrintDocument控件

356

12.4.2  PrintDialog

361

12.4.3  PageSetupDialog

362

12.4.4  PrintPreviewDialog

363

12.5  重点整理

368

12.6  课后习题

369

第13章  选项控件和菜单

371

13.1  具有选项的控件

372

13.1.1  具有容器的GroupBox

372

13.1.2  单选按钮

373

13.1.3  复选框

376

13.2  具有列表的控件

378

13.2.1  下拉列表

378

13.2.2  列表框

383

13.2.3  CheckedListBox

385

13.3  菜单

386

13.3.1  MenuStrip控件

387

13.3.2  直接编辑菜单项

388

13.3.3  用项集合编辑器生成菜单项

390

13.3.4  菜单常用的属性

395

13.4  与菜单有关的外围控件

399

13.4.1  ContextMenuStrip控件

400

13.4.2  ToolStrip

402

13.4.3  状态栏

405

13.5  重点整理

406

13.6  课后习题

407

第14章  鼠标、键盘、多文档

409

14.1  多文档界面

410

14.1.1  认识多文档界面

410

14.1.2  MDI窗体的成员

412

14.1.3  窗体的排列

413

14.2  键盘事件

414

14.2.1  认识键盘事件

414

14.2.2  KeyDown和KeyUp事件

415

14.2.3  KeyPress事件

420

14.3  鼠标事件

422

14.3.1  认识鼠标事件

422

14.3.2  获取鼠标信息

423

14.3.3  鼠标的拖曳功能

425

14.4  图形设备接口

428

14.4.1  窗体的坐标

429

14.4.2  产生画布

430

14.4.3  绘制图形

431

14.4.4  绘制线条、几何图形

433

14.4.5  绘制几何图形

437

14.4.6  字体和笔刷

439

14.5  重点整理

442

14.6  课后习题

442

第4篇  应用篇

第15章  IO与数据处理

444

15.1  数据流与System.IO

445

15.2  文件与数据流

445

15.2.1  文件目录

446

15.2.2  文件信息

450

15.2.3  使用File静态类

455

15.3  标准数据流

458

15.3.1  FileStream

459

15.3.2  StreamWriter写入器

462

15.3.3  StreamReader读取器

463

15.4  重点整理

465

15.5  课后习题

466

第16章  Access数据库和ADO组件

467

16.1  数据库基础

468

16.1.1  数据库

468

16.1.2  认识关系数据库

468

16.2  认识ADO.NET

469

16.2.1  System.Data命名空间

469

16.2.2  ADO.NET架构

470

16.3  获取数据源

471

16.3.1  生成DataSet

472

16.3.2  查看“数据源”窗口

476

16.3.3  DataGridView控件

477

16.4  简易SQL指令

482

16.4.1  使用查询生成器

482

16.4.2  使用查询窗口

485

16.4.3  SELECT子句

487

16.4.4  WHERE子句

487

16.4.5  动态查询

488

16.5  用程序代码来提取、存入数据

490

16.5.1  导入相关命名空间

490

16.5.2  用Connection对象连接数据库

491

16.5.3  Command对象执行SQL指令

492

16.5.4  DataReader显示内容

493

16.5.5  DataAdapter加载数据

495

16.6  重点整理

498

16.7  课后习题

499

习题答案

501


VC++深入详解(第3版)(基于Visual Studio 2017)

孙鑫 (作者) 黄爱萍 (责任编辑)

丛 书:孙鑫精品图书系列

书 号:ISBN 978-7-121-36221-7

出版日期:2019-06-01

页 数:748

开 本:16(185*260)

本书在内容的组织上循序渐进、由浅入深;在知识的介绍上,从内到外、从原理到实践。

第1章首先为读者介绍了Visual Studio 2017的安装和使用,以及离线MSDN的安装。第2章帮助读者掌握Windows平台下程序运行的内部机制。第3章帮助读者复习C++中的重要知识,为后续知识的学习打下良好的基础。第4章重点剖析MFC框架程序的运行脉络,并与第2章的知识做对照,为读者彻底扫清学习MFC的迷雾。相信通过这一章的学习,很多以前学过MFC的读者都会有一种恍然大悟的感觉。前四章可以归为基础部分,从第5章开始就是实际应用开发的讲解了,包括绘图、文本、菜单、对话框、定制程序外观、图形保存和重绘、文件和注册表操作、网络编程、多线程、进程间通信、ActiveX控件、动态链接库、HOOK编程等多个主题,并且每一章都有一个完整的例子。

本书的讲解理论结合实际,选用的例子和代码非常具有代表性和实用价值,我和我的学员在实际开发项目的过程中就曾经直接使用过很多书中的代码。

以实际应用为主,贯穿编程思想和技巧,在知识的讲解上,理论结合实际,深入剖析了程序运行的原理,对于每一个知识点,都清楚地讲解了为什么,而不是简单地告诉读者怎么用。

蓝墨水图书专营店

目 录

第1章 准备开发环境1

1.1 下载并安装Visual Studio 20171

1.2 运行一个程序——

Hello World3

1.3 安装离线MSDN5

1.4 小结7

第2章 Windows程序内部运行

机制8

2.1 API与SDK8

2.2 窗口与句柄9

2.3 消息与消息队列10

2.4 WinMain函数11

2.4.1 WinMain函数的定义12

2.4.2 窗口的创建13

2.4.3 消息循环20

2.4.4 编写窗口过程函数22

2.5 动手写一个Windows程序26

2.6 消息循环的分析30

2.7 变量的命名约定32

2.8 小结33

第3章 掌握C++34

3.1 从结构到类34

3.1.1 结构体的定义34

3.1.2 结构体与类36

3.2 C++的特性38

3.2.1 类与对象39

3.2.2 构造函数39

3.2.3 析构函数42

3.2.4 函数的重载43

3.2.5 this指针44

3.2.6 类的继承46

3.2.7 虚函数与多态性、纯虚函数54

3.2.8 函数的覆盖和隐藏58

3.2.9 引用61

3.2.10 C++类的设计习惯及头文件

重复包含问题的解决63

3.2.11 VC++程序编译链接的原理与过程69

第4章 MFC框架程序剖析71

4.1 MFC应用程序向导71

4.2 基于MFC的程序框架剖析74

4.2.1 MFC程序中的WinMain

函数76

4.2.2 MFC框架窗口87

4.2.3 消息循环93

4.2.4 窗口过程函数95

4.2.5 文档/视类结构96

4.2.6 帮助对话框类96

4.3 窗口类、窗口类对象与窗口97

4.3.1 三者之间关系97

4.3.2 在窗口中显示按钮101

4.4 本章小结108

第5章 简单绘图109

5.1 MFC消息映射机制109

5.1.1 类向导110

5.1.2 消息映射机制113

5.2 绘制线条118

5.2.1 利用SDK全局函数实现

画线功能119

5.2.2 利用MFC的CDC类实现

画线功能120

5.2.3 利用MFC的CClientDC类

实现画线功能121

5.2.4 利用MFC的CWindowDC类

实现画线功能123

5.2.5 在桌面窗口中画线124

5.2.6 绘制彩色线条125

5.3 使用画刷绘图127

5.3.1 简单画刷127

5.3.2 位图画刷128

5.3.3 透明画刷131

5.4 绘制连续线条136

5.5 绘制扇形效果的线条138

5.6 本章小结140

第6章 文本编程141

6.1 插入符141

6.1.1 创建文本插入符141

6.1.2 创建图形插入符145

6.2 窗口重绘146

6.2.1 OnDraw函数147

6.2.2 添加字符串资源149

6.3 路径151

6.4 字符输入155

6.4.1 设置字体160

6.4.2 字幕变色功能的实现162

6.5 本章小结167

第7章 菜单168

7.1 菜单命令响应函数168

7.2 菜单命令的路由171

7.2.1 程序类对菜单命令的响应

顺序171

7.2.2 Windows消息的分类172

7.2.3 菜单命令路由的过程172

7.3 基本菜单操作174

7.3.1 标记菜单175

7.3.2 默认菜单项177

7.3.3 图形标记菜单179

7.3.4 禁用菜单项182

7.3.5 移除和装载菜单185

7.3.6 MFC菜单命令更新机制188

7.3.7 快捷菜单192

7.4 动态菜单操作195

7.4.1 添加菜单项目195

7.4.2 插入菜单项目197

7.4.3 删除菜单200

7.4.4 动态添加的菜单项的

命令响应200

7.5 电话本示例程序202

7.5.1 动态添加子菜单的实现203

7.5.2 显示输入的字符205

7.5.3 添加菜单项及其命令

响应函数207

7.5.4 框架类窗口截获菜单

命令消息210

7.6 本章小结217

第8章 对话框(一)218

8.1 对话框基本知识218

8.1.1 常用控件介绍218

8.1.2 对话框的种类220

8.2 对话框的创建和显示220

8.2.1 模态对话框的创建224

8.2.2 非模态对话框的创建225

8.3 动态创建按钮227

8.4 控件的访问231

8.4.1 控件的调整232

8.4.2 静态文本控件233

8.4.3 编辑框控件235

8.5 对话框伸缩功能的实现247

8.6 输入焦点的传递253

8.7 默认按钮的进一步说明261

8.8 本章小结261

第9章 对话框(二)262

9.1 “逃跑”按钮的实现262

9.2 属性表单和向导的创建269

9.2.1 创建属性页272

9.2.2 创建属性表单277

9.2.3 向导的创建279

9.3 本章小结296

附录296

第10章 定制应用程序外观299

10.1 修改应用程序窗口的外观299

10.1.1 在窗口创建之前修改299

10.1.2 在窗口创建之后修改302

10.2 修改窗口的光标、图标和

背景304

10.2.1 在窗口创建之前修改304

10.2.2 在窗口创建之后修改308

10.3 模拟动画图标310

10.3.1 加载图标资源310

10.3.2 定时器的处理312

10.4 工具栏编程314

10.4.1 在工具栏上添加和删除

按钮315

10.4.2 创建工具栏316

10.5 状态栏编程325

10.6 进度栏编程332

10.6.1 在窗口中创建进度栏332

10.6.2 在状态栏的窗格中

创建进度栏333

10.7 在状态栏上显示鼠标

当前位置340

10.8 本章小结343

第11章 绘图控制344

11.1 简单绘图344

11.2 设置对话框349

11.2.1 设置线宽349

11.2.2 设置线型353

11.3 颜色对话框355

11.4 字体对话框360

11.5 示例对话框365

11.6 改变对话框和控件的背景及

文本颜色368

11.6.1 改变整个对话框及其上

子控件的背景色369

11.6.2 仅改变某个子控件的背景及

文本颜色370

11.6.3 改变控件上的文本字体373

11.6.4 改变按钮控件的背景色及

文本颜色375

11.7 位图的显示379

11.8 本章小结384

第12章 图形的保存和重绘385

12.1 坐标空间和转换385

12.1.1 坐标空间385

12.1.2 转换386

12.1.3 逻辑坐标和设备坐标390

12.2 图形的保存和重绘392

12.2.1 集合类CPtrArray394

12.2.2 OnPaint与OnDraw398

12.3 窗口滚动功能的实现400

12.3.1 CScrollView类400

12.3.2 图形错位现象402

12.4 元文件407

12.4.1 元文件的使用407

12.4.2 元文件的保存与打开411

12.5 兼容设备描述表413

12.6 本章小结416

第13章 文件和注册表操作417

13.1 const char*和char* const417

13.1.1 const char*417

13.1.2 char* const418

13.2 C语言对文件操作的支持419

13.2.1 文件的打开419

13.2.2 文件的写入420

13.2.3 文件的关闭422

13.2.4 fflush函数423

13.2.5 文件指针定位423

13.2.6 文件的读取424

13.2.7 二进制文件和文本文件428

13.2.8 文本方式和二进制方式430

13.3 C++对文件操作的支持433

13.4 Win32 API对文件操作的

支持435

13.4.1 文件的创建和打开435

13.4.2 文件的写入439

13.4.3 文件的读取440

13.5 MFC对文件操作的支持442

13.5.1 文件的写入443

13.5.2 文件的读取443

13.5.3 CFileDialog类444

13.6 INI文件的访问449

13.6.1 INI文件的结构449

13.6.2 INI文件的写入450

13.6.3 INI文件的读取451

13.7 CWinApp的注册表读写

函数453

13.8 注册表的编程455

13.8.1 注册表API455

13.8.2 注册表访问示例462

13.9 本章小结468

第14章 文档与串行化469

14.1 使用CArchive类对文件进行

读写操作469

14.2 MFC框架程序提供的文件

新建功能472

14.2.1 IDR_MAINFRAME字符串

资源473

14.2.2 OnNewDocument函数的

调用过程477

14.3 文档串行化485

14.3.1 文档类的Serialize函数485

14.3.2 MFC框架对Serialize函数的

调用过程487

14.4 可串行化的类495

14.4.1 实现类对串行化的支持495

14.4.2 利用可串行化类的Serialize

函数保存和加载对象497

14.4.3 版本号501

14.4.4 利用CObArray类对串行化的支持保存和加载数据502

14.5 文档对象数据的销毁506

14.6 本章小结510

第15章 网络编程511

15.1 计算机网络基本知识511

15.1.1 IP地址512

15.1.2 协议512

15.1.3 网络的状况513

15.1.4 网络异质性问题的解决513

15.1.5 ISO/OSI七层参考模型513

15.1.6 数据封装516

15.1.7 TCP/IP模型516

15.1.8 端口517

15.1.9 套接字(socket)的引入517

15.1.10 网络字节顺序518

15.1.11 客户机/服务器模式518

15.2 Windows Sockets的实现519

15.2.1 套接字的类型519

15.2.2 基于TCP(面向连接)的

socket编程519

15.2.3 基于UDP(面向无连接)的socket编程520

15.3 相关函数520

15.3.1 WSAStartup函数521

15.3.2 socket函数522

15.3.3 bind函数522

15.3.4 inet_addr和inet_ntoa

函数523

15.3.5 inet_pton和inet_ntop

函数524

15.3.6 listen函数525

15.3.7 accept函数525

15.3.8 send函数525

15.3.9 recv函数526

15.3.10 connect526

15.3.11 recvfrom526

15.3.12 sendto函数527

15.3.13 htons和htonl函数527

15.4 基于TCP的网络应用程序的

编写528

15.4.1 服务器端程序528

15.4.2 客户端程序532

15.5 基于UDP的网络应用程序的

编写535

15.5.1 服务器端程序535

15.5.2 客户端程序537

15.6 基于UDP的简单聊天程序538

15.6.1 服务器端程序539

15.6.2 客户端程序542

15.7 本章小结544

第16章 多线程545

16.1 基本概念545

16.1.1 进程545

16.1.2 线程549

16.2 线程创建函数550

16.3 简单多线程示例551

16.4 线程同步555

16.4.1 火车站售票模拟

程序555

16.4.2 多线程程序容易出现的

问题557

16.4.3 利用互斥对象实现线程

同步558

16.5 保证应用程序只有一个实例

运行566

16.6 网络聊天室程序的实现567

16.6.1 加载套接字库568

16.6.2 创建并初始化套接字569

16.6.3 实现接收端功能570

16.6.4 实现发送端功能575

16.7 本章小结577

第17章 线程同步与异步套接字编程578

17.1 事件对象578

17.1.1 创建事件对象578

17.1.2 设置事件对象状态579

17.1.3 重置事件对象状态579

17.1.4 利用事件对象实现线程

同步579

17.1.5 保证应用程序只有一个实例

运行586

17.2 关键代码段586

17.2.1 相关的API函数587

17.2.2 利用关键代码段实现线程

同步587

17.3 线程死锁590

17.4 互斥对象、事件对象与关键代码

段的比较594

17.5 基于消息的异步套接字594

17.5.1 相关函数说明595

17.5.2 网络聊天室程序的实现600

17.6 本章小结610

第18章 进程间通信611

18.1 剪贴板611

18.1.1 数据发送612

18.1.2 数据接收616

18.2 匿名管道618

18.2.1 基础知识618

18.2.2 进程的创建619

18.2.3 父进程的实现624

18.2.4 子进程的实现628

18.3 命名管道631

18.3.1 基础知识631

18.3.2 服务器端程序635

18.3.3 客户端程序640

18.4 邮槽643

18.4.1 服务器端程序644

18.4.2 客户端程序645

18.5 本章小结648

第19章 ActiveX控件649

19.1 ActiveX控件649

19.1.1 ActiveX控件的好处650

19.1.2 MFC ActiveX控件向导650

19.1.3 ActiveX控件的注册654

19.1.4 ActiveX控件的测试656

19.1.5 时钟控件的实现659

19.2 属性660

19.2.1 标准属性661

19.2.2 自定义属性666

19.3 方法672

19.4 事件674

19.4.1 标准事件675

19.4.2 自定义事件676

19.5 属性的持久性679

19.6 环境属性681

19.7 ActiveX控件测试程序683

19.8 本章小结686

第20章 动态链接库688

20.1 动态链接库概述688

20.1.1 静态库和动态库688

20.1.2 使用动态链接库的好处689

20.1.3 动态链接库的加载690

20.2 DLL的创建和使用690

20.2.1 Dumpbin命令691

20.2.2 从DLL中导出函数692

20.3 隐式链接方式加载DLL693

20.3.1 利用extern声明外部

函数694

20.3.2 Dependency Walker工具697

20.3.3 利用_declspec(dllimport)

声明外部函数698

20.4 完善DLL例子699

20.5 从DLL中导出C++类701

20.6 解决名字改编问题704

20.7 显示加载方式加载DLL709

20.7.1 LoadLibary函数709

20.7.2 调用约定711

20.7.3 根据序号访问DLL中的

导出函数714

20.8 DllMain函数715

20.9 MFC DLL716

20.10 本章小结717

第21章 HOOK编程718

21.1 HOOK编程718

21.1.1 基本知识718

21.1.2 进程内钩子720

21.1.3 全局钩子727

21.2 本章小结738




^_^:d1e3219191d090b0520c9803e9ddaca9