《Visual C++应用技巧与常见问题你问我答》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:冉光志等编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2003
  • ISBN:7111118154
  • 页数:351 页
图书介绍:本书介绍了C++应用中的常见问题与使用技巧。

第1章 C++语言基础 1

1.1 奇妙的const 2

如何用const修饰变量 2

如何用const修饰函数 3

怎样在类中使用const 4

const与#define有什么区别 5

如何使用volatile和const_cast 6

1.2 内存分配 7

如何使用new和delete 7

分配内存时需要注意什么 8

new/delete与malloc/free有什么区别 9

有哪些处理内存不足的方法 9

为什么要重载new和delete操作符 11

1.3 内联函数 13

宏有哪些不足 13

如何使用内联函数 13

过度使用内联函数会导致什么问题 14

1.4 运算符重载 14

什么是运算符重载 14

哪些运算符可以重载 15

重载要遵循哪些原则 15

重载要受到哪些限制 15

如何定义运算符重载 16

运算符重载有什么作用 16

如何使用运算符重载 17

什么是模板 18

什么是函数模板 18

1.5 模板与STL 18

什么是类模板 19

为什么使用模板 20

怎样使用模板 21

什么是STL 22

使用STL要包含哪些头文件 22

什么是STL的容器 23

什么是STL的算法 23

什么是STL的迭代器 24

STL还包括哪些内容 25

1.6 命名空间及其应用 26

何为标识符的作用范围 26

为什么引入命名空间 27

如何访问命名空间 27

怎样解决命名冲突 28

命名空间要注意哪些问题 29

1.7 C++异常机制 30

什么是异常 30

怎样抛出异常 30

如何处理异常 31

什么是异常规格说明 31

在异常处理中要遇到哪些特殊函数 33

1.8 C++的RTTI机制 34

什么是RTTI 34

如何使用dynamic_cast关键字 34

如何使用typeid关键字 35

什么是type_info类 36

第2章 VC工具使用技巧 37

如何彻底地删除一个类 38

如何恢复VC编辑器中的智能提示 38

2.1 VC常用操作技巧 38

如何检测源代码中括号是否配对 38

如何快速格式化源程序 39

如何用VC查看EXE或DLL文件中的资源 39

如何知道GetLastError返回的错误代码的含义 40

如何使用Source Browser工具 40

如何知道定义常数和宏的头文件 41

如何在一个工作区中管理多个项目 41

如何编写脚本宏以扩展Visual Studio 42

2.2 编译常见问题及技巧 45

VC是怎样构造一个应用程序的 45

VC6.0的编译器支持哪些选项 45

VC支持的常见函数调用转换有哪些不同 46

如何使用naked函数 50

如何构造UNICODE版本的程序 52

如何使用#、##和#@ 52

如何定位发生编译错误的源程序 52

如何从命令行编译程序 52

2.3 链接常见问题及技巧 53

如何让VC链接器链接指定的库文件 53

如何链接正确版本的CRT 53

什么是动态链接库的迟后载入 54

如何应用.DEF文件 54

2.4 调试技巧 55

如何在调试时查看汇编代码 55

如何调试一个动态链接库 56

第3章 Windows 9X系统原理及其应用 57

什么是Shell名字空间 58

3.1 Shell原理及应用 58

如何显示文件夹浏览对话框 61

如何在程序中控制任务栏 63

如何编写系统托盘图标程序 63

如何显示Shell about对话框 68

如何从Shell运行程序 69

如何编写控制面板小程序 70

3.2 系统机制 72

什么是内核对象 72

进程和线程的本质是什么 72

什么是线程局部存储(TLS) 76

什么是结构化异常处理(SEH) 76

什么是虚拟机(VM) 77

什么是VxD,应用程序如何与VxD通信 79

在Win32中如何实现从Ring3跳到Ring0 82

什么是用户界面对象,系统如何管理它们 84

3.3 内在管理 84

如何使用虚拟内存 84

如何在应用程序中使用堆 87

如何使用内存映射文件 90

3.4 PE文件格式 94

什么是PE文件、它的结构是怎样的 94

第4章 Windows NT/2000系统原理及其应用 101

4.1 系统总体结构 102

Windows NT/2000的体系结构是怎样的 102

如何创建Windows 2000下的半透明窗口 104

如何创建Windows 2000下的消息窗口 104

4.2 Windows NT/2000新特性 104

什么是重叠I/O,如何使用完成端口 106

如何应用远程线程(Remote thread) 112

4.3 系统机制 114

如何编写本地应用程序 114

什么是LPC、如何在应用程序中使用LPC 116

如何访问进程的句柄表 121

4.4 管理机制 127

什么是服务,如何编写Win32服务应用程序 127

如何在应用程序中使用事件日志 141

4.5 系统安全特性 148

什么是GINA 148

访问令牌和安全描述符各是什么 148

第5章 基于SDK的Win32 API编程 159

5.1 基于Win32 API的C++编程 160

什么是MVC模型 160

如何使用C++语言和Win32 API进行MVC编程 161

如何在示例程序里增加一个View模型 167

5.2 Windows事件消息钩挂技术 170

什么是Windows事件消息钩挂 170

有哪些类型的钩子 171

如何使用事件钩挂技术 171

如何编写键盘钩子程序 173

使用钩子时要注意什么问题 176

如何在别人的程序里安装键盘钩子 177

如何在整个系统里安装键盘钩子 181

API钩挂和Windows事件消息钩挂有什么不同 182

什么是API钩挂技术 182

5.3 API钩挂技术 182

有哪些API钩挂的方法 183

如何进行API的简单钩挂 185

如何钩挂别人程序的API 189

如何编写一个钩挂其他程序的API的例子 189

5.4 DLL的编写及应用 195

如何正确编写Win32 DLL 195

如何编写和使用资源DLL 199

第6章 MFC编程基础 201

6.1 MFC类库基础 202

MFC类库的层次结构是怎样的 202

CObject类具有哪些特性 202

应用框架类具有哪些特性 205

如何处理文本文件 211

如何在CString和字符串指针之间进行转换 211

如何使用内存文件 212

6.2 消息处理机制 213

MFC如何进行消息映射 213

Windows如何处理消息 214

第7章 文档/视图体系结构 217

什么是文档/视图结构 218

使用文档/视图结构有什么好处 218

MFC文档/视图结构的组成对象 219

各个对象之间如何通信 221

如何编写一个单文档程序 222

如何编写一个多文档程序 228

如何存取文档 231

如何用多个同类视图显示同一个文档 238

如何用多个视图显示同一个文档 238

如何用多个不同类的视图显示同一个文档 240

如何增加一个文档类型 244

第8章 菜单与控制栏 252

8.1 高级菜单 253

如何创建弹出式菜单 253

8.2 工具栏 254

什么是工具栏 254

如何自行设置工具栏 255

如何加入其他控件 258

8.3 状态栏 259

如何自行设置状态栏 262

状态栏如何显示时间 262

第9章 对话框与通用控件 263

9.1 普通对话框 264

什么是对话框数据交换 264

如何使用模态对话框 269

如何使用非模态对话框 269

如何改变对话框的背景颜色 271

如何在对话框中使用工具栏 272

如何在对话框中实现空闲处理 276

如何在对话框中创建视图 276

9.2 通用对话框 278

如何隐藏文件对话框中的各个控件 278

9.3 通用控件 279

如何实现列表视图控件的整行选中 279

如何控制列表视图控件的绘制 280

如何设置列表视图控件的背景、文本及文本背景颜色 280

如何实现列表视图控件的自绘制 283

如何在树形视图条目前添加复选框 283

第10章 MFC多线程编程 286

10.1 理解多线程 287

什么是多线程 287

如何在Win32实现 288

10.2 MFC与多线程编程 291

如何利用MFC 291

第11章 MFC图形图像编程 297

11.1 GDI编程 298

什么是设备描述表 298

如何实现位图区域窗口 302

什么是OpenGL,它的实现原理是怎样的 310

11.2 OpenGL编程简介 310

什么是绘图环境(Rendering Context) 311

如何用VC进行OpenGL编程 311

第12章 MFC网络编程 318

12.1 Winsock编程 319

什么是Winsock 319

MFC如何对Winsock封装 322

如何编写C/S通信程序 329

12.2 WinInet编程 332

如何用WinInet编程 332

12.3 RAS编程 335

什么是RAS 335

如何管理电话簿 336

如何编写RAS客户程序 345