《Visual C++编程深入引导》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:伍红兵编著
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2002
  • ISBN:7508410076
  • 页数:720 页
图书介绍:本书分四部分:深入理解C++、深入理解Win32操作系统、深入理解SDK程序设计、深入理解MFC。

第1章 面向对象程序设计 1

第一部分 深入理解 C++ 1

1.1 结构化程序设计 2

1.2 面向对象程序设计 3

1.3 C++版本 9

1.4 关于开发示例的平台 11

1.5 控制台程序(Console Application)与 DOS 程序的区别 12

1.6 控制台程序的生成 13

1.7.1 概述 19

1.7 汇编语言基础 19

1.7.2 例子 25

第2章 类与对象 32

2.1 类的定义 32

2.2 对象声明与使用 34

2.3 this 指针 35

2.4 汇编代码 37

2.5 对象初始化与清除 50

2.6 类型转换与拷贝构造函数 53

2.7 对象赋值 56

2.8 对象成员 58

2.9 汇编代码 62

2.10 静态成员 67

2.11 常量成员 68

2.12 汇编代码 68

2.13 指向类成员的指针 72

3.1 继承 75

第3章 类的继承和派生 75

3.2 派生类的初始化与清除 77

3.3 汇编代码 80

3.4 派生类的赋值和拷贝初始化构造函数 87

3.5 二义性和支配规则 90

3.6 赋值兼容性规则 92

3.7 虚基类 94

3.8 汇编代码 101

3.9 保护的构造函数 113

3.10 友员 114

4.1 C++多态性特征 117

第4章 虚函数与多态性 117

4.2 采用指针或引用来调用虚函数 122

4.3 汇编代码 124

4.4 虚函数的访问权限 132

4.5 在成员函数中调用虚函数 133

4.6 在构造函数中调用虚函数 136

4.7 在析构函数中调用虚函数 137

4.8 虚析构函数 138

4.9 包含虚函数的虚基类 140

4.10 汇编代码 142

4.11 抽象基类和纯虚函数 152

4.12 虚函数(Virtual)、重载(Overloading)与覆盖(Overriding) 155

第5章 运算符重载 158

5.1 一般概念 158

5.2 类运算符和友员运算符 160

5.3 注意的问题 163

5.4 详细讨论 164

5.4.1 转换构造函数 164

5.4.2 转换运算符 165

5.4.4 赋值运算符重载 166

5.4.3 算术运算符重载 166

5.4.5 逻辑运算符重载 168

5.4.6 下标运算符重载 169

5.4.7 函数调用运算符重载 172

5.4.8 成员选择运算符(->)、递引用运算符(*)和取地址运算符( )重载 173

5.4.9 递增和递减运算符重载 175

5.4.10 new 和 delete 重载 177

5.5 运算符重载于派生类 180

6.1 产生一个名字空间 181

第6章 名字空间 181

6.2 名字空间的使用 183

6.2.1 作用域限定 183

6.2.2 using 指令 184

6.2.3 using 声明 187

第7章 模板 190

7.1 类模板 190

7.2 函数模板 196

7.3 模板参数 199

7.4 特殊版本的模板 201

7.5 模板友员 203

7.6 模板静态成员 205

第8章 异常处理 208

8.1 C++的异常处理 208

8.2 多个异常的组织 217

8.2.1 多个异常 217

8.2.2 用枚举组织异常 220

8.2.3 用派生类组织异常 222

8.2.4 利用虚函数组织异常 225

8.2.5 用模板组织异常 227

8.3 异常接口说明 229

8.4 汇编代码 232

第9章 运行时类型信息(RTTI) 247

9.1 C++中的 RTTI 247

9.1.1 typeid 247

9.1.2 dynamic_cast 251

9.2 与 RTTI 相关的异常 256

9.3 新的类型映射语法 257

9.3.1 static_cast 258

9.3.2 const_cast 260

9.3.3 reinterpret_cast 261

9.4 汇编代码 262

第二部分 深入理解 Windows 操作系统 282

第10章 Windows 95体系结构 282

10.1 Windows 95体系结构组件 282

10.2 注册表 283

10.3 设备驱动程序 284

10.4 配置管理器(Configuration Manager) 285

10.5 虚拟机管理器(Virtual Machine Manager) 287

10.5.1 进程调度与多任务(Process Scheduling and Multitasking) 287

10.5.2 内存分页(Memory Paging) 288

10.5.3 支持 MS-DOS 方式 289

10.6 可安装的文件系统(Installable File Systems) 290

10.6.1 可安装文件系统管理器(Installable File System Manager) 291

10.6.2 文件系统驱动程序(File System Drivers) 291

10.6.3 块 I/O 子系统(Block I/O Subsystem) 292

10.7 核心系统组件(Core System Components) 294

10.7.2 Kernel 组件 296

10.7.1 User 组件 296

10.7.3 图形设备接口(Graphical Device Interface) 297

10.8 用户接口 299

10.9 应用程序支持 299

第11章 Windows 2000体系结构 301

11.1 Windows 2000产品包 301

11.2 Windows 2000与 Windows 95/98/Me 的对比 303

11.3 体系结构概览 304

11.4.1 环境子系统和子系统动态连接库 306

11.4 主要系统组件 306

11.4.2 NTDLL.DLL 313

11.4.3 执行体(Executive) 314

11.4.4 内核(Kernel) 315

11.4.5 硬件抽象层(Hardware Abstraction Layer(HAL)) 318

11.4.6 设备驱动程序 318

11.4.7 Windows 2000设备驱动程序增强 319

11.4.8 了解非文档化接口 320

11.4.9 系统启动的进程(System.Start-up Processes) 321

11.5 系统服务调度 325

11.6 Windows 2000对象管理器 327

11.6.1 执行体对象 328

11.6.2 对象结构 328

第12章 内存结构与管理 334

12.1 Win32平台寻址机制 334

12.2 进程地址空间划分 339

12.2.1 Windows 95进程地址空间划分 339

12.2.2 Windows 2000进程地址空间划分 341

12.3 Win32内存管理 343

12.4 Win32中的虚拟内存 345

12.4.1 保留、提交、释放虚拟内存 347

12.4.2 修改虚拟内存页的保护属性 353

12.4.3 查询进程的虚拟内存状态 354

12.4.4 查询进程的虚拟内存中确定地址空间的状态 355

12.4.5 重设物理存储的内容 356

12.5 Win32中内存映射文件(Memory-Mapped Files) 357

12.5.1 内存映射 EXE 和 DLL 358

12.5.2 内存映射数据文件 361

12.5.3 使用内存映射文件在进程间共享数据 366

12.6 Win32中的堆内存 369

12.6.2 创建和使用自己的堆 370

12.6.1 进程的缺省堆 370

12.6.3 其他堆函数 373

第13章 进程与线程 374

13.1 进程与线程的基本概念 374

13.2 进程内幕 375

13.3 进程的创建和终止 379

13.3.1 系统创建进程的过程 379

13.3.2 CreateProcess 函数详解 381

13.3.3 进程的终止 393

13.4 线程内幕 395

13.5 创建线程和终止 397

13.5.1 系统创建线程的过程 397

13.5.2 CreateThred 函数详解 398

13.5.3 线程的终止 400

13.6 线程同步 402

13.6.1 临界区 405

13.6.2 内核对象 409

14.1 Win32消息队列 417

第14章 消息循环 417

14.2 投递(PostMessage)消息 419

14.3 发送(SendMessage)消息 420

14.4 获得消息 425

14.5 虚拟输入队列与局部输入状态 428

14.5.1 键盘输入 430

14.5.2 鼠标输入 431

第15章 Unicode 433

15.1 简介 433

15.3 C 运行时库对 Unicode 的支持 435

15.2 操作系统对 Unicode 的支持 435

15.4 Win32API 对 Unicode 的支持 438

第16章 PE(Portable Executable)文件格式 440

16.1 PE 格式简介 440

16.2 PE 格式基本概念 441

16.3 PE 首部(PE Header) 442

16.3.1 MS-DOS Stub 442

16.3.2 IMAGE_NT_HEADERS 443

16.3.3 IMAGE_FILE_HEADER 444

16.3.4 IMAGE_OPTIONAL_HEADER 446

16.4 PE 节表(Section Table) 451

16.5 PE 常见节 456

16.6 PE 输入表(Import Table) 460

16.7 PE 输出表(Export Table) 464

16.8 PE 文件中的基地址重定位 468

16.9 PE 文件中的资源 470

第三部分 深入理解 SDK 程序设计 476

第17章 创建 MyApp 476

17.1 用 SDK 开发 Win32程序开发流程 476

17.2 生成一个简单的基于 SDK 的应用程序 477

18.1.1 MyApp.dsw 480

第18章 MyApp 相关文件 480

18.1 ..\MyApp 目录下的文件 480

18.1.2 MyApp.dsp 481

18.1.3 MyApp.cpp 485

18.1.4 MyApp.h 489

18.1.5 StdAfx.h 490

18.1.6 StdAfx.cpp 493

18.1.7 MyApp.rc 494

18.1.8 resource.h 511

18.1.11 ReadMe.txt 514

18.1.9 MyApp.ico 514

18.1.10 small.ico 514

18.1.12 MyApp.ncb 516

18.1.13 MyApp.plg 516

18.1.14 MyApp.opt 516

18.2 ..\MyApp\Debug 目录下的文件 516

18.2.1 MyApp.res 516

18.2.2 vc60.idb 516

18.2.4 MyApp.pch 517

18.2.3 vc60.pdb 517

18.2.5 StdAfx.obj 518

18.2.6 MyApp.obj 518

18.2.7 MyApp.ilk 518

18.2.8 MyApp.exe 518

18.3 ..\MyApp\目录下的文件 518

第19章 基本的 Win32程序剖析 520

19.1 应用程序加载与启动 520

19.2 注册窗口类 525

19.2.2 wcex.style 527

19.2.1 wcex.cbSize 527

19.2.3 wcex.lpfnWndProc 529

19.2.4 wcex.hIcon 529

19.2.5 wcex.hCursor 531

19.2.6 wcex.hbrBackground 531

19.2.7 wcex.lpszMenuName 532

19.2.8 wcex.lpszClassName 532

19.2.12 注册窗口类 534

19.2.11 wcex.cbWndExtra 534

19.2.10 wcex.cbClsExtra 534

19.2.9 wcex.hIconSm 534

19.2.13 窗口类的属性 536

19.2.14 窗口类的作用域 538

19.2.15 注销窗口类 540

19.3 创建应用程序窗口 541

19.3.1 窗口概述 541

19.3.2 Windows 窗口管理器 543

19.3.3 产生窗口 549

19.3.4 窗口的样式 554

19.3.5 扩展窗口样式 559

19.3.6 获取和设置窗口属性 561

19.3.7 窗口特性(Window Property) 564

19.4 主消息循环 565

19.4.1 消息循环 565

19.4.2 消息类型 571

19.5 应用程序窗口过程 573

19.5.1 WM_COMMAND 574

19.5.2 WM_PAINT 575

19.5.3 WM_DESTROY 575

19.6.1 对话框模板 577

19.6 对话框 577

19.6.2 产生父窗口和子窗口 582

19.6.3 对话框窗口过程 584

19.6.4 无模式(Modeless)对话框与模式(Model)对话框 585

19.6.5 对话框中 Tab 键与光标键的工作机制 588

19.6.6 MyApp 程序中的对话框窗口过程 592

第四部分 深入理解 MFC 594

第20章 Windows 应用程序框架与 MFC 594

20.1 应用程序框架 594

20.2 微软基本类 MFC 595

20.3 MFC 纵览 597

20.3.1 MFC 类体系 597

20.3.2 MFC 中的宏 598

20.3.3 MFC 中的注释 599

20.3.4 MFC 中的命名规则 600

第21章 用 MFC 开发 Windows 应用程序 602

21.1 MFC 支持文件 602

21.2 生成 MyApp 应用程序 604

21.3 MyApp 应用程序的组成 605

21.4 MFC 应用程序框架 638

21.4.1 MDI 应用程序框架外观 638

21.4.2 MDI 应用程序框架对象关系 640

21.4.3 SDI 应用程序框架 643

第22章 MFC 应用程序分析 648

22.1 WinMain() 648

22.1.1 Afx 内部初始化 653

22.1.2 应用程序初始化 655

22.1.3 实例初始化 655

22.1.4 创建应用程序主框架窗口 656

22.1.5 消息循环 658

22.2 WndProc() 659

第23章 MFC 关键技术 663

23.1 概述 663

23.1.1 CRuntimeClass 663

23.1.2 CObject 665

23.2 RTTI(运行时期类型识别) 668

23.3 Dynamic Creation(动态生成) 676

23.4 Serialization(序列化) 678

23.4.1 CArchive 类 679

23.4.2 DECLARE_SERIAL/IMPLEMENT_SERIAL 宏 682

23.4.3 序列化对象小结 691

23.4.4 RTTI、动态创建和序列化的关系 693

23.5 消息映射机制 694

23.5.1 概述 694

23.5.2 三种类型的消息 695

23.5.3 支持消息映射的宏 696

23.5.4 消息路由 701

参考文献 720