图书介绍

精通Windows API:函数、接口、编程实例2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

精通Windows API:函数、接口、编程实例
  • 范文庆,周彬彬,安靖编著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115190956
  • 出版时间:2009
  • 标注页数:547页
  • 文件大小:210MB
  • 文件页数:560页
  • 主题词:窗口软件,Windows-软件接口-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

精通Windows API:函数、接口、编程实例PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 Windows应用程序开发入门1

1.1 第一个实例程序1

1.1.1 start.exe1

1.1.2 Windows API2

1.1.3 程序入口函数2

1.1.4 start.c代码分析2

1.2 编译代码3

1.2.1 安装Visual Studio3

1.2.2 安装Microsoft Platform SDK4

1.2.3 集成Microsoft Platform SDK与Visual C++速成版5

1.2.4 Vista SDK与Visual Studio 20086

1.2.5 Visual Studio专业版或团队系统版7

1.2.6 使用图形化IDE建立工程、进行编译7

1.2.7 “解决方案”与“工程”8

1.2.8 使用命令行工具编译8

第2章 Windows API概要10

2.1 Windows数据类型10

2.1.1 Windows数据类型示例10

2.1.2 Windows数据类型与标准C数据类型的关系14

2.1.3 Windows数据类型与Windows API14

2.1.4 Windows中的数据结构15

2.2 Windows API的功能分类15

2.2.1 系统基本服务15

2.2.2 系统管理17

2.2.3 用户界面17

2.2.4 图像和多媒体20

2.2.5 网络20

2.2.6 系统安全20

2.2.7 其他功能21

2.3 Windows API核心DLL21

2.3.1 Kernel32.dll21

2.3.2 User32.dll21

2.3.3 Gdi32.dll22

2.3.4 标准C函数22

2.3.5 其他Dll22

2.4 Unicode和多字节22

2.4.1 W版本和A版本的API24

2.4.2 Unicode与ASCII的转换24

2.5 对Windows程序设计规范的建议25

第3章 开发工具配置与使用26

3.1 使用Visual C/C++编译链接工具26

3.1.1 编译器cl.exe27

3.1.2 资源编译器rc.exe31

3.1.3 链接器link.exe32

3.1.4 其他工具38

3.1.5 编译链接工具依赖的环境变量39

3.1.6 示例:使用/D选项进行条件编译42

3.2 使用Platform SDK43

3.2.1 Platform SDK的目录结构与功能43

3.2.2 为编译链接工具设置环境变量45

3.2.3 Platform SDK工具集46

3.2.4 Windows Vista SDK48

3.3 编写Makefile48

3.3.1 使用nmake.exe构建工程48

3.3.2 Makefile实例50

3.3.3 注释50

3.3.4 宏50

3.3.5 描述块:目标、依赖项和命令53

3.3.6 makefile预处理55

3.3.7 在Platform SDK的基础上使用nmake56

3.4 使用WinDbg调试57

3.4.1 安装WinDbg57

3.4.2 编译可调试的程序58

3.4.3 WinDbg命令59

3.4.4 调试过程演示59

3.5 集成开发环境Visual Studio62

3.5.1 工程类型选择与配置62

3.5.2 Visual Studio快捷方式64

3.5.3 生成项目64

3.5.4 调试65

3.5.5 选项与设置65

3.6 开发环境配置总结66

第4章 文件系统67

4.1 概述67

4.1.1 文件系统的基本概念67

4.1.2 文件系统主要API68

4.2 磁盘和驱动器管理70

4.2.1 遍历卷并获取属性70

4.2.2 操作驱动器挂载点76

4.2.3 判断光驱中是否有光盘81

4.2.4 获取磁盘分区的总容量、空闲容量、簇、扇区信息83

4.3 文件和目录管理86

4.3.1 删除、复制、重命名、移动文件87

4.3.2 创建、打开、读写文件,获取文件大小90

4.3.3 创建目录96

4.3.4 获取程序所在的目录、程序模块路径,获取和设置当前目录97

4.3.5 查找文件、遍历指定目录下的文件和子目录100

4.3.6 递归遍历目录树103

4.3.7 获取、设置文件属性和时间105

4.4 内存映射文件110

4.4.1 使用Mapping File提高文件读写的效率110

4.4.2 通过Mapping File在进程间传递和共享数据115

4.4.3 通过文件句柄获得文件路径118

4.5 总结121

第5章 内存管理122

5.1 Windows内存管理原理122

5.1.1 基本概念122

5.1.2 分页与分段内存管理、内存映射与地址转换123

5.1.3 进程的内存空间125

5.1.4 虚拟内存布局、内存的分工、堆与栈127

5.1.5 内存的保护属性和存取权限127

5.1.6 本章API列表127

5.2 堆管理129

5.2.1 获取堆句柄、分配与再分配堆129

5.2.2 获取堆中内存块的大小信息133

5.2.3 释放内存、销毁堆134

5.3 全局(Global)和局部(Local)内存管理136

5.3.1 Global函数136

5.3.2 Local函数137

5.3.3 使用全局和局部函数分配和释放内存、改变内存块属性137

5.4 虚拟内存管理138

5.4.1 虚拟地址空间与内存分页139

5.4.2 分配和释放可读可写的虚拟内存页面139

5.4.3 修改内存页面状态和保护属性、将页面锁定在物理内存中142

5.4.4 管理其他进程的虚拟内存143

5.5 内存操作与内存信息管理144

5.5.1 复制、填充、移动、清零内存块、防止缓冲区溢出144

5.5.2 获得当前系统内存使用情况146

5.5.3 判断内存指针的可用性147

5.6 各种内存分配方式的关系与比较148

5.6.1 标准C内存管理函数与Windows内存管理API的关系149

5.6.2 功能性区别149

5.6.3 效率的区别149

第6章 进程、线程和模块150

6.1 基本概念150

6.1.1 应用程序与进程150

6.1.2 控制台应用程序与图形用户界面应用程序151

6.1.3 动态链接库、模块151

6.1.4 线程、纤程与作业152

6.1.5 权限与优先级153

6.2 进程管理153

6.2.1 创建进程、获取进程相关信息、获取启动参数153

6.2.2 编写控制台程序和图形用户界面应用程序158

6.2.3 获取和设置环境变量158

6.3 线程、纤程162

6.3.1 创建线程、退出线程、获取线程信息162

6.3.2 挂起、恢复、切换、终止线程164

6.3.3 创建远程线程、将代码注入其他进程中执行167

6.3.4 创建纤程、删除纤程、调度纤程170

6.3.5 纤程与线程的互相转换171

6.4 进程状态信息176

6.4.1 PS API与Tool help API176

6.4.2 遍历系统中的进程178

6.4.3 列举进程的模块、线程182

6.4.4 进程的堆使用、内存占用、虚拟内存大小,页面错误情况184

6.5 动态链接库185

6.5.1 加载、释放DLL、通过句柄获取DLL相关信息186

6.5.2 编写动态链接库、导出函数186

6.5.3 创建动态链接库工程,配置DLL编译链接选项188

6.5.4 运行时动态获取DLL导出函数地址并调用189

6.5.5 声明导出函数、创建lib库,为其他模块提供导入表调用接口190

6.5.6 通过构建导入表调用DLL导出函数191

第7章 线程同步192

7.1 基本原理192

7.1.1 线程同步的过程193

7.1.2 同步对象193

7.1.3 等待函数193

7.2 同步对象示例194

7.2.1 使用事件对象(Event)194

7.2.2 使用互斥对象(Mutex)199

7.2.3 使用信号量控制访问共享数据的线程数量202

7.2.4 使用可等待计时器(Timer)206

7.3 等待进程和线程的执行完成209

第8章 服务210

8.1 基本概念210

8.1.1 服务控制器(SCM)211

8.1.2 服务程序211

8.1.3 服务控制管理程序211

8.1.4 系统服务管理工具211

8.1.5 服务的属性211

8.2 编写服务程序212

8.2.1 入口函数212

8.2.2 服务主函数212

8.2.3 控制处理函数213

8.3 实现对服务的控制和管理216

8.3.1 创建、删除服务216

8.3.2 启动、停止服务,向服务发送控制请求219

8.3.3 管理服务状态、配置服务、服务的依赖关系222

第9章 图形用户界面229

9.1 字符界面程序229

9.1.1 基本概念230

9.1.2 控制台读写231

9.1.3 控制台字体、颜色等属性,操作屏幕缓存234

9.1.4 控制台事件244

9.2 图形用户界面:基本概念246

9.2.1 窗口246

9.2.2 窗口类246

9.2.3 消息和消息处理函数247

9.2.4 控件247

9.2.5 资源248

9.2.6 对话框248

9.3 图形用户界面:窗口248

9.3.1 注册窗口类249

9.3.2 创建窗口251

9.3.3 窗口消息处理函数253

9.3.4 窗口属性、位置和大小256

9.3.5 窗口显示方式257

9.3.6 线程消息队列和消息循环258

9.4 图形用户界面:控件258

9.4.1 Tree View控件258

9.4.2 为Tree View控件增加节点260

9.4.3 Tree View右键菜单262

9.4.4 List View控件263

9.4.5 为List View控件增加分栏265

9.4.6 为List View控件增加项266

9.4.7 文本框控件267

9.4.8 为文本框控件设置文字268

9.5 界面资源269

9.5.1 资源脚本(.rc)269

9.5.2 资源ID定义和头文件272

9.5.3 在程序中使用资源273

9.6 菜单273

9.6.1 菜单资源和菜单句柄273

9.6.2 动态增加、删除、设置菜单及菜单项274

9.6.3 菜单消息处理274

9.7 对话框275

9.7.1 创建对话框275

9.7.2 对话框消息处理函数276

第10章 系统信息的管理277

10.1 Windows系统信息277

10.1.1 获取系统版本277

10.1.2 获取计算机硬件信息279

10.1.3 获取系统目录等信息281

10.1.4 用户名、计算机名、域名282

10.1.5 处理系统颜色信息、尺度信息等284

10.1.6 鼠标、键盘等外设信息285

10.2 时间信息286

10.2.1 设置、获取系统时间286

10.2.2 获取开机至现在持续的时间287

10.2.3 文件时间与系统时间的转换287

10.3 注册表288

10.3.1 注册表的作用及组织形式288

10.3.2 键、子键、键属性及键值的相关操作289

10.3.3 列举注册表项及键值292

10.3.4 通过注册表设置一个自启动的程序293

10.3.5 设置随程序启动而启动的调试器(任何程序)294

10.3.6 指定程序崩溃实时调试器294

第11章 进程间通信295

11.1 邮槽(MailSlot)295

11.1.1 创建邮槽、从邮槽中读取消息296

11.1.2 通过邮槽发送消息299

11.2 管道(Pipe)300

11.2.1 创建命名管道300

11.2.2 管道监听302

11.2.3 使用异步I/O进行读写303

11.2.4 关闭管道实例307

11.2.5 客户端307

11.3 剪贴板310

11.3.1 获取、设置剪贴板数据310

11.3.2 监视剪贴板317

11.3.3 剪贴板数据格式325

11.4 数据复制消息(WM_COPYDATA)327

11.4.1 数据发送端327

11.4.2 数据接收端330

11.5 其他进程间通信方式332

11.5.1 动态数据交换(DDE)和网络动态数据交换(NDDE)332

11.5.2 通过File Mapping在进程间共享数据333

11.5.3 Windows Socket333

第12章 Windows Shell程序设计334

12.1 Windows Shell目录管理335

12.1.1 Shell对目录和文件的管理形式335

12.1.2 “我的文档”等特殊目录相关操作335

12.1.3 绑定、遍历、属性获取337

12.1.4 浏览文件对话框339

12.2 文件协助(File Associations)340

12.2.1 文件类型相关注册表键值340

12.2.2 为文件指定默认打开程序341

12.2.3 定制文件类型的图标342

12.3 Shell扩展343

12.3.1 对象及概念343

12.3.2 CLSID,处理例程的GUID344

12.3.3 注册Shell扩展345

12.3.4 COM程序开发基础346

12.3.5 编写Handler程序346

12.3.6 Shell扩展程序的调试362

12.3.7 总结363

12.4 任务栏通知区域(Tray)图标363

12.4.1 创建图标窗口364

12.4.2 创建图标和图标菜单367

12.4.3 最小化主窗口到通知区域370

12.4.4 弹出气泡通知372

12.4.5 动态图标374

12.4.6 其他功能376

第13章 Windows GDI379

13.1 GDI编程接口概述379

13.1.1 Windows GDI的功能379

13.1.2 链接库与头文件380

13.2 设备上下文(DC)、输出操作与图形对象380

13.2.1 设备上下文类型与关联设备380

13.2.2 图形对象的作用及与DC的关系380

13.2.3 各类图形对象的具体属性与作用383

13.2.4 绘制、填充、写入等图形输出操作384

13.2.5 修剪与坐标变换385

13.2.6 设备上下文的图形模式385

13.3 一个最简单的GDI程序386

13.3.1 示例386

13.3.2 DC的操作387

13.3.3 颜色的表示388

13.3.4 图形对象:画刷和画笔389

13.3.5 输出操作:绘制图形和线条390

13.4 文字和字体391

13.4.1 选择、设置字体393

13.4.2 选择字体图形对象394

13.4.3 文字的颜色394

13.4.4 输出文字395

13.4.5 DC图形模式设置395

13.4.6 遍历字体396

13.4.7 为系统安装、删除字体文件398

13.5 绘制线条398

13.5.1 选择画笔对象399

13.5.2 直线399

13.5.3 绘制任意曲线399

13.5.4 跟踪鼠标轨迹399

13.5.5 弧线405

13.6 绘制图形405

13.6.1 填充颜色与边缘勾勒406

13.6.2 绘制矩形、椭圆、圆角矩形406

13.6.3 椭圆弓形和椭圆扇形411

13.6.4 多边形411

13.6.5 RECT结构及对RECT的操作412

13.7 位图操作414

13.7.1 截取屏幕、保存位图文件414

13.7.2 将位图显示在界面上419

13.8 区域(Regions)、路径(Paths)与修剪(Clip)操作422

13.8.1 区域的创建及形状、位置等属性422

13.8.2 区域边沿、区域填充、反转与勾勒操作423

13.8.3 组合、比较、移动等操作426

13.8.4 点击测试(Hit Testing)427

13.8.5 路径的创建与操作431

13.8.6 路径转换为区域432

13.8.7 使用区域和路径进行修剪操作,限制输出432

13.9 坐标变换438

13.9.1 缩放439

13.9.2 旋转440

13.10 调色板440

第14章 网络通信与配置443

14.1 Socket通信444

14.1.1 客户端444

14.1.2 服务端449

14.1.3 处理并发的客户端连接455

14.1.4 网络通信的异步I/O模式456

14.2 IP Helper456

第15章 程序安装与设置463

15.1 创建cab文件463

15.1.1 makecab.exe463

15.1.2 压缩多个文件464

15.1.3 Cabinet软件开发工具包(CABSDK)466

15.2 编写INF文件466

15.2.1 INF文件格式466

15.2.2 Install节468

15.2.3 CopyFiles和AddReg等安装过程468

15.2.4 源路径和目的路径469

15.2.5 字符串表469

15.3 安装程序setup.exe的编号469

15.4 使用msi文件进行安装472

15.4.1 Windows Installer Service472

15.4.2 msi文件的创建与修改工具orca.exe474

15.4.3 准备工作475

15.4.4 编辑表组475

第16章 设备驱动管理与内核通信476

16.1 设备管理476

16.1.1 列举设备接口477

16.1.2 监控设备的加载和卸载483

16.2 I/O控制、内核通信488

16.2.1 加载驱动程序488

16.2.2 控制驱动程序、与驱动程序进行通信495

16.3 编写设备驱动程序498

16.3.1 驱动程序开发包:DDK499

16.3.2 开发驱动程序499

16.4 I/O模式,同步与异步504

第17章 用户、认证和对象安全506

17.1 基本概念506

17.1.1 访问令牌、权限和用户标识506

17.1.2 进程的系统操作权限507

17.1.3 安全对象508

17.1.4 访问控制列表(ACL)508

17.2 安全机制程序示例509

17.2.1 列举进程访问令牌内容和权限509

17.2.2 修改进程的权限514

17.2.3 列举安全对象的安全描述符515

17.2.4 修改安全描述符521

17.3 用户522

17.3.1 创建用户522

17.3.2 用户组523

17.3.3 删除用户525

17.3.4 列举用户和用户组、获取用户信息525

第18章 Windows API的内部原理532

18.1 关于API的补充说明532

18.1.1 Windows API的版本演进和Vista新增API532

18.1.2 64位操作系统的接口533

18.2 Windows系统中的对象封装533

18.2.1 什么是对象534

18.2.2 面向对象的思想534

18.2.3 Windows系统中的对象:内核对象、GDI对象等534

18.3 Windows程序设计参考:文档资源与样例代码534

18.3.1 SDK文档和MSDN534

18.3.2 SDK示例代码535

18.4 x86平台程序函数调用原理535

18.4.1 函数调用的真实过程535

18.4.2 函数调用约定539

18.4.3 为什么通过参数返回数据时只能使用指针540

18.4.4 缓冲区溢出540

18.4.5 程序运行错误的调试技巧540

18.5 可执行程序结构与API函数接口内部机理541

18.5.1 Windows可执行程序结构541

18.5.2 导入表、导出表、动态链接543

18.5.3 NTDLL.DLL、NATIVE API和SSDT544

18.5.4 API HOOK546

18.6 发布程序546

18.6.1 合理选择编译链接选项546

18.6.2 构建到指定路径546

18.7 模块化,向Windows API学习接口定义547

18.7.1 lib文件547

18.7.2 头文件547

18.7.3 为第三方应用软件提供SDK547

热门推荐