精通Windows API:函数、接口、编程实例(附CD-ROM光盘一张)
分類: 图书,计算机与互联网,操作系统,Microsoft Windows,Windows 编程开发,
品牌: 范文庆
基本信息·出版社:人民邮电出版社
·页码:547 页
·出版日期:2009年
·ISBN:711519095X/9787115190956
·条形码:9787115190956
·包装版本:1版
·装帧:平装
·开本:16
·正文语种:中文
·附带品描述:附CD-ROM光盘一张
产品信息有问题吗?请帮我们更新产品信息。
内容简介《精通Windows API:函数、接口、编程实例》全书共18章,分为3个部分,第1部分(第1章~第3章)介绍Windows程序设计基础;第2部分(第4章~第17章)按照程序设计的各个方面进行划分,包括文件系统、内存管理、进程与线程、用户界面、Shell程序开发、Windows GDI、Socket网络通信驱动程序开发、安全机制等内容;第3部分(第18章)作为全书的总结和补充。
从Windows应用程序开发工具讲起,引导读者快速入门
详细讲解API和关键结构的使用方法
提供156个Windows API使用实例
涵盖主题:
Windows应用程序开发入门;开发工具配置与使用;文件系统;内存管理;进程、线程和模块;线程同步;服务;图形用户界面;系统信息的管理;进程间通信;Windows SheLL程序设计;WindOWS GDl;网络通信与配置;设备驱动管理与内核通信;用户、认证和对象安全;Windows API的内部原理。
注:附CD-ROM光盘一张。
编辑推荐Windows API(Windows Application Program Interface,Windows应用程序接口)是一系列函数、宏、数据类型、数据结构的集合,运行于Windows系统的应用程序,可以使用操作系统提供的接口来实现需要的功能。《精通Windows API:函数、接口、编程实例》由浅入深、循序渐进地教授读者如何使用Windows API进行Windows应用程序开发。
《精通Windows API:函数、接口、编程实例》适合广大的Windows应用程序开发人员、VC++开发工程师、网络游戏开发人员、软件培训机构学员和高校学生阅读。
目录
第1章Windows应用程序开发入门1
1.1第一个实例程序1
1.1.1start.exe1
1.1.2Windows API2
1.1.3程序入口函数2
1.1.4start.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.4Vista SDK与Visual Studio 20086
1.2.5Visual Studio专业版或团队系统版7
1.2.6使用图形化IDE建立工程、进行编译7
1.2.7“解决方案”与“工程”8
1.2.8使用命令行工具编译8
第2章Windows API概要10
2.1Windows数据类型10
2.1.1Windows数据类型示例10
2.1.2Windows数据类型与标准C数据类型的关系14
2.1.3Windows数据类型与Windows API14
2.1.4Windows中的数据结构15
2.2Windows 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.3Windows API核心DLL21
2.3.1Kernel32.dll21
2.3.2User32.dll21
2.3.3Gdi32.dll22
2.3.4标准C函数22
2.3.5其他Dll22
2.4Unicode和多字节22
2.4.1W版本和A版本的API24
2.4.2Unicode与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.1Platform SDK的目录结构与功能43
3.2.2为编译链接工具设置环境变量45
3.2.3Platform SDK工具集46
3.2.4Windows Vista SDK48
3.3编写Makefile48
3.3.1使用nmake.exe构建工程48
3.3.2Makefile实例50
3.3.3注释50
3.3.4宏50
3.3.5描述块:目标、依赖项和命令53
3.3.6makefile预处理55
3.3.7在Platform SDK的基础上使用nmake56
3.4使用WinDbg调试57
3.4.1安装WinDbg57
3.4.2编译可调试的程序58
3.4.3WinDbg命令59
3.4.4调试过程演示59
3.5集成开发环境 Visual Studio62
3.5.1工程类型选择与配置62
3.5.2Visual 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.1Windows内存管理原理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.1Global函数136
5.3.2Local函数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.1PS 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.1Tree View控件258
9.4.2为Tree View控件增加节点260
9.4.3Tree View右键菜单262
9.4.4List 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.1Windows系统信息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.3Windows Socket333
第12章Windows Shell程序设计334
12.1Windows Shell目录管理335
12.1.1Shell对目录和文件的管理形式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.3Shell扩展343
12.3.1对象及概念343
12.3.2CLSID,处理例程的GUID344
12.3.3注册Shell扩展345
12.3.4COM程序开发基础346
12.3.5编写Handler程序346
12.3.6Shell扩展程序的调试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.1GDI编程接口概述379
13.1.1Windows 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.2DC的操作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.5DC图形模式设置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.5RECT结构及对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.1Socket通信444
14.1.1客户端444
14.1.2服务端449
14.1.3处理并发的客户端连接455
14.1.4网络通信的异步I/O模式456
14.2IP Helper456
第15章程序安装与设置463
15.1创建cab文件463
15.1.1makecab.exe463
15.1.2压缩多个文件464
15.1.3Cabinet软件开发工具包(CABSDK)466
15.2编写INF文件466
15.2.1INF文件格式466
15.2.2Install节468
15.2.3CopyFiles和AddReg等安装过程468
15.2.4源路径和目的路径469
15.2.5字符串表469
15.3安装程序setup.exe的编号469
15.4使用msi文件进行安装472
15.4.1Windows Installer Service472
15.4.2msi文件的创建与修改工具orca.exe474
15.4.3准备工作475
15.4.4编辑表组475
第16章设备驱动管理与内核通信476
16.1设备管理476
16.1.1列举设备接口477
16.1.2监控设备的加载和卸载483
16.2I/O控制、内核通信488
16.2.1加载驱动程序488
16.2.2控制驱动程序、与驱动程序进行通信495
16.3编写设备驱动程序498
16.3.1驱动程序开发包:DDK499
16.3.2开发驱动程序499
16.4I/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.1Windows API的版本演进和Vista新增API532
18.1.264位操作系统的接口533
18.2Windows系统中的对象封装533
18.2.1什么是对象534
18.2.2面向对象的思想534
18.2.3Windows系统中的对象:内核对象、GDI对象等534
18.3Windows程序设计参考:文档资源与样例代码534
18.3.1SDK文档和MSDN534
18.3.2SDK示例代码535
18.4x86平台程序函数调用原理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.1Windows可执行程序结构541
18.5.2导入表、导出表、动态链接543
18.5.3NTDLL.DLL、NATIVE API和SSDT544
18.5.4API HOOK546
18.6发布程序546
18.6.1合理选择编译链接选项546
18.6.2构建到指定路径546
18.7模块化,向Windows API学习接口定义547
18.7.1lib文件547
18.7.2头文件547
18.7.3为第三方应用软件提供SDK547
……[看更多目录]
序言关于WindOWsAPl
WindowsAPI(WindowsApplicationProgramInterface)是一系列函数、宏、数据类型、数据结构的集合。运行于Windows系统的应用程序可以使用操作系统提供的接口来实现应用程序需要的功能。Windows开发平台是所有程序开发平台中非常重要的一种,是程序设计中一个重要的方面。本书介绍了Windows应用程序开发的各个方面。
本书的写作方法
程序设计是一门实践性很强的学科,本书在编写过程中十分注重与实际开发工作相联系,在讲解每一个编程要点时,都以实例为核心进行分析、演示,并把实际工程中开发人员可能遇到的问题以实例的方式向读者讲解。
与此同时,本书同样重视基础知识的讲解,重视原理的说明,对程序所使用的每一个API和每一个结构的使用方法都尽量详细说明。本书还在第18章详细介绍了Windows系统调用的内部过程。
解决开发人员实际编码过程中可能出现的问题也是本书的一个主要目的,因此本书使用了大量篇幅来讲解编译选项等最容易被忽略,但是却是最容易在程序设计中出现问题,也是常常使得程序员不知道如何解决的问题。
本书主要内容
本书共分18章,涵盖了Windows应用程序设计的基本内容。第1、2、3章是Windows程序设计的基础。第4章~第17章按程序设计的方面划分,每个方面一章。第18章是全书的总结和提高。
第1章主要讲解如何配置Windows应用程序的开发工具,从最简单的实例入手,使读者对Windows应用程序的开发有一个初步的认识。
第2章对WindowsAPI作了简要的介绍,包括WindowsAPI基本的功能分类、数据类型等。
第3章介绍了开发工具配置与使用,包括基本的编译链接工具c1.exe、rc.exe、link.exe,PlatformSDk的使用,Makefile的编写以及使用WinDbg的调试方法等。
文摘插图: