| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 论坛
 上传资源
上传编程相关的资源,源源不断赚取资源分,以备将来下载之需
ioriliao
文件大小:19.75 MB
文件类型:pdf
发布时间:2010-10-16 11:23:00
需资源分:2
下载次数:202
Tag:Windows  Windows高级
::资源简介::
Jeffrey Richter是一位在全球享有盛誉的技术作家,尤其在Windows/.NET领域有着杰出的贡献。他的第一本Windows著作Windows 3: A Developer's Guide大获好评,从而声名远扬。之后,他又推出了经典著作《Windows 高级编程指南》和《Windows核心编程》。如今这两本书早已成为Windows程序设计领域的颠峰之作,培育了几代软件开发设计人员。他的每一本新作问世,我们都有理由相信这是一本巨著,我们想要的一切尽在其中。Jeffery 是Wintellect公司的创始人之一,也是MSDN杂志.NET专栏的特邀编辑。现在他正领导开发该公司的.NET程序设计课程,向大众推广.NET技术。因为他自1999年开始就参与了微软.NET框架开发组的咨询工作,与这些一线人员一起经历了.NET的孕育与诞生,所以他对.NET思想的领悟、对.NET的细节熟稔,是其他任何作家难以企及的。他是.NET著作领域中当之无愧的一面旗帜。
第0章 绪论 
0.1 关于应用程序范例 
0.1.1 用C语言编写程序 
0.1.2 Message Cracker Macros(消息拆析宏) 
0.1.3 有关16位Windows编程的知识 
0.1.4 在Windows 95下运行应用程序范例 
0.1.5 不相关代码 
0.1.6 范例应用程序的独立性 
0.1.7 STRICT编译 
0.1.8 错误检查 
0.1.9 没有错误 
0.1.10 测试平台和环境 
0.1.11 Unicode 
0.2 安装范例程序 
0.2.1 配套的CD-ROM盘 
第1章 WIN 32 API和支持它的平台 
1.1 梦想一下:Win 32 API 
1.2 Win 32s 
1.3 Windows NT 
1.4 Windows 95 

.1.5 Windows CE 
1.6 现实:Win 32 API 
第2章 内核对象 
2.1 什么是内核对象 
2.1.1 使用计数 
2.1.2 安全 
2.2 进程的内核对象句柄表 
2.2.1 创建内核对象 
2.2.2 关闭内核对象 
2.3 在进程间共享内核对象 
2.3.1 对象句柄继承 
2.3.2 改变句柄标志 
2.3.3 命名对象 
2.3.4 复制对象句柄 
第3章 进程 
3.1 编写第一个Win 32应用程序 
3.1.1 进程的实例句柄 
3.1.2 进程的前一个实例的句柄 
3.1.3 进程的命令行 
3.1.4 进程的环境变量 
3.1.5 进程的错误模式 
3.1.6 进程的当前驱动器和目录 
3.1.7 系统版本 
3.2 CreateProcess函数 
3.2.1 lpszApplicationName和lpszCommandline 
3.2.2 lpsaProcess,lpsaThread和fInheritHandles 
3.2.3 fdwCreate 
3.2.4 lpvEnvironment 
3.2.5 lpszCurDir 
3.2.6 lpsiStartInfo 
3.2.7 lppiProcInfo 
3.3 终止进程 
3.3.1 ExitProcess函数 
3.3.2 Terminate Process函数 
3.3.3 进程中的所有线程结束了 
3.3.4 进程终结时发生的事情 
3.4 子进程 
3.4.1 运行分离的子进程 
第4章 线程 
4.1 何时创建线程 
4.2 何时不用创建线程 
4.3 编写第一个线程函数 
4.3.1 线程的栈 
4.3.2 线程的CONTEXT结构 
4.3.3 线程的执行时间 
4.4 CreateThread函数 
4.4.1 lpsa 
4.4.2 cbstack 
4.4.3 lpStartAddr和lpvThreadParm 
4.4.4 fdwCreate 
4.4.5 lpIDThread 
4.5 终止线程 
4.5.1 Exit Thread函数 
4.5.2 TerminateThread函数 
4.5.3 进程终结 
4.5.4 线程终结时的情况 
4.6 识别自己的身份 
4.7 系统如何调度线程 
4.7.1 使用Win 32 API怎样赋优先级 
4.7.2 改变进程的优先级类 
4.7.3 设定线程的相对优先级 
4.7.4 挂起和恢复线程 
4.8 系统内部情况 
4.9 进程、线程和C运行时库 
4.9.1 应避免使用的C运行时函数 
第5章 Win 32内存结构 
5.1 虚地址空间 
5.1.1 Windows 95如何划分进程的地址空间 
5.1.2 Windows NT如何划分进程的地址空间 
5.2 地址空间中的区域 
5.3 在区域内提交物理存储 
5.4 物理存储 
5.4.1 不包含在页面文件中的物理存储 
5.5 保护属性 
5.5.1 写拷贝访问 
5.5.2 特殊的访问保护属性标志 
5.6 小结 
5.6.1 区域的内部 
5.7 Windows 95的地址空间的不同 
第6章 虚拟内存 
6.1 系统信息 
6.1.1 系统信息范例应用程序 
6.2 虚拟内存状态 
6.2.1 虚拟内存状态范例应用程序 
6.3 确定地址空间的状态 
6.3.1 VMQuery函数 
6.3.2 虚拟内存映射范例应用程序 
第7章 在应用程序中使用虚拟内存 
7.1 在地址空间中保留区域 
7.2 在保留区域中提交存储 
7.3 同时保留区域和提交物理存储 
7.4 何时提交物理存储 
7.5 释放物理存储和释放区域 
7.5.1 何时释放物理存储 
7.5.2 虚拟内存分配范例应用程序 
7.6 修改保护属性 
7.7 在RAM中锁定物理存储 
7.8 重设物理存储的内容 
7.9 线程的栈 
7.9.1 Windows 95下的线程的栈 
7.9.2 C运行时库的栈检查函数 
第8章 内存映射文件 
8.1 内存映射EXE和DLL 
8.1.1 不被EXE或DLL的多个实例共享的静态数据 
8.2 内存映射数据文件 
8.2.1 方法1:一个文件,一个缓冲区 
8.2.2 方法2:两个文件,一个缓冲区 
8.2.3 方法3:一个文件,两个缓冲区 
8.2.4 方法4:一个文件,零个缓冲区 
8.3 使用内存映射文件 
8.3.1 第1步:创建或打开文件内核对象 
8.3.2 第2步:创建文件映射内核对象 
8.3.3 第3步:将文件数据映射入进程地址空间 
8.3.4 第4步:从进程地址空间中解除文件数据映射 
8.3.5 第5步和第6步:关闭文件映射对象和文件对象 
8.3.6 用内存映射文件处理大文件 
8.4 内存映射文件和一致性 
8.4.1 文件倒置范例应用程序 
8.4.2 指定内存映射文件的基本地址 
8.5 内存映射文件和Win 32实现 
8.5.1 使用内存映射文件在进程间共享数据 
8.5.2 由页面文件支持的内存映射文件 
8.5.3 内存映射文件共享范例应用程序 
8.6 稀疏提交的内存映射文件 
第9章 堆 
9.1 什么是Win 32堆 
9.1.1 进程的缺省堆 
9.1.2 创建自己的Win 32堆 
9.1.3 创建Win 32堆 
9.1.4 释放Win 32堆 
9.1.5 在C++时使用堆 
9.1.6 其他一些堆函数 
9.2 16位Windows堆函数 
第10章 线程同步 
10.1 线程同步概述 
10.2 最坏的事情 
10.2.1 创建监临界区 
10.2.2 使用临界区 
10.2.3 临界区范例应用程序 
10.3 用内核对象同步线程 
10.3.1 互斥量 
10.3.2 互斥量范例应用程序 
10.3.3 信号量 
10.3.4 超市范例应用程序 
10.3.5 事件 
10.3.6 Bucket of Balls范例应用程序 
10.3.7 SWMRG复合同步对象 
10.3.8 Bucket范例源代码 
10.3.9 Document Statistics范例应用程序 
10.3.10 可等的计时器 
10.4 线程挂起 
10.4.1 Sleep 
10.4.2 异步文件I/O 
10.4.3 WaitForLnputIdle 
10.4.4 MsgWaitForMultipleObjects 
10.4.5 WaitForDebugEvent 
10.4.6 SignalObjectAndWait 
10.4.7 Interlocked函数族 
第11章 窗口消息和异步输入 
11.1 多任务 
11.1.1 抢先式调度 
11.2 线程队列和消息处理 
11.2.1 Win 32消息队列结构 
11.2.2 向线程的消息队列投递消息 
11.2.3 发送消息给窗口 
11.2.4 唤醒线程 
11.3 用消息发送数据 
11.3.1 CopyData范例应用程序 
11.4 非序列化输入 
11.4.1 输入如何被非序列化 
11.5 局部输入状态 
11.5.1 键盘输入和焦点 
11.5.2 鼠标光标管理 
11.5.3 局部输入状态实验范例应用程序 
第12章 动态链接库 
12.1 创建动态链接 
12.1.1 映射DLL到进程的地址空间 
12.2 DLL的进入/退出函数 
12.2.1 DLL_PROCESS_ATTACH 
12.2.2 DLL_PROCESS_DATACH 
12.2.3 DLL_THREAD_ATTACH 
12.2.4 DLL_THREAD_DETACH 
12.2.5 系统如何序列化对DllMain的调用 
12.2.6 DllMain和C运行时库 
12.3 从DLL中输出函数和变量 
12.4 从DLL中引入函数和变量 
12.4.1 DLL的头文件 
12.5 创建DLL供非Visual C++工具使用 
12.6 在EXE或DLL映射之间共享数据 
12.6.1 EXE或DLL中的节 
12.6.2 ModUse范例应用程序 
12.6.3 MultInst范例应用程序 
第13章 线程局部存储 
13.1 动态线程局部存储 
13.1.1 使用动态线程局部存储 
13.1.2 动态线程局部存储范例应用程序 
13.2 静态线程局部存储 
13.2.1 静态线程局部存储范例应用程序 
第14章 文件系统 
14.1 Win 32的文件名约定 
14.2 系统和卷操作 
14.2.1 得到卷的特定信息 
14.2.2 磁盘信息查看范例应用程序 
14.3 目录操作 
14.3.1 得到当前目录 
14.3.2 改变当前目录 
14.3.3 得到系统目录 
14.3.4 得到Windows目录 
14.3.5 创建和删除目录 
14.4 拷贝、删除、移动和重命名文件 
14.4.1 拷贝文件 
14.4.2 删除文件 
14.4.3 移动文件 
14.4.4 重命名文件 
14.5 查找文件 
14.5.1 目录漫游范例应用程序 
14.6 文件系统变化通知 
14.6.1 文件变化范例应用程序 
14.7 操纵文件属性 
14.7.1 可执行文件类型 
14.7.2 文件属性 
14.7.3 文件大小 
14.7.4 文件时间戳 
14.8 创建临时文件 
第15章 设备I/O 
15.1 打开和关闭设备 
15.1.1 CreateFile 
15.2 使用文件设备 
15.2.1 定位文件指针 
15.2.2 设置文件尾 
15.2.3 加锁和解锁文件的区域 
15.3 进行同步I/O 
15.3.1 向设备强制刷新数据 
15.4 进行异步I/O 
15.5 使设备内核对象有信号 
15.6 使事件内核对象有信号 
15.7 告警I/O 
15.7.1 告警I/O范例应用程序 
15.8 I/O完成端口 
15.8.1 模拟完成I/O请求 
15.8.2 I/O完成端口范例应用程序 
15.9 判断I/O请求是否完成 
15.10 取消未完成的I/O请求 
第16章 结构化异常处理 
16.1 终止处理程序 
16.1.1 理解终止处理程序 
16.1.2 关于finally块的一些注解 
16.1.3 SEH终止范例应用程序 
16.2 异常过滤程序和异常处理程序 
16.2.1 理解异常过滤程序和异常处理程序 
16.2.2 EXCEPTION_EXECUTE_HANDLER 
16.2.3 EXCEPTION_CONTINUE_EXECUTION 
16.2.4 EXCEPTION_CONTINUE_SEARCH 
16.2.5 全局展开 
16.2.6 停止全避展开 
16.2.7 关于异常过滤程序的进一步讨论 
16.2.8 GetExceptionInformation 
16.2.9 SEH异常范例应用程序 
16.2.10 SEH Sum范例应用程序 
16.3 软件异常 
16.3.1 SEH软件异常范例应用程序 
16.3.2 未处理的异常 
16.3.3 没有附属调试器的未和的异常 
16.3.4 不显示异常消息框 
16.3.5 自己调用UnhandledExceptionFilter 
16.3.6 Windows NT的未处理的内核模式异常 
第17章 Unicode 
17.1 字符集 
17.1.1 单字节和双字节字符集 
17.1.2 Unicode:宽字节字符集 
17.2 为什么要使用Unicode 
17.3 如何编写Unicode源代码 
17.3.1 Windows NT和Unicode 
17.3.2 Windows 95和Unicode 
17.3.3 C运行时库对Unicode的支持 
17.3.4 Win 32定义的Unicode数据类型 
17.3.5 Win 32中的Unicode和ANSI宏数 
17.4 使你的程序能识别ANSI和Unicode 
17.4.1 Win 32中的字符串函数 
17.4.2 资源 
17.4.3 文本 
17.4.4 在Unicode和ANSI之间转换字符串 
17.4.5 Windows NT的窗口类和过程 
第18章 打开进程边界 
18.1 为什么要打开进程边界:一个例子 
18.2 使用注册表来注入DLL 
18.3 使用Windows钩来注入DLL 
18.3.1 Desktop Item Position Savev工具 
18.4 使用远程线程注入DLL 
18.4.1 如何装入一个DLL 
18.5 影响其他进程的Win 32函数 
18.5.1 CreateRemoteThread 
18.5.2 GetThreadContext和SetThreadContext 
18.5.3 VirtualQueryEx和VirtualProtectEx 
18.5.4 VirtualAllocEx和VirtualFreeEx 
18.5.5 ReadProcessMemory和WriteProcessMemory 
18.6 创建一个函数向任意进程的地址空间注入DLL 
18.6.1 版本0:为什么显然的方法不能工作 
18.6.2 版本1:手编的机器语言 
18.6.3 版本2:AllocProcessMemory和CreateRemore Thread 
18.6.4 ProcMem工具函数 
18.6.5 InjectLib函数 
18.7 测试InjectLib函数 
18.7.1 注入库范例应用程序 
18.7.2 映象遍历动态链接库 
18.8 小结 
附录 A FIBERS 
A.1 例程:计算器应用程序 
附录 B MESSAGE CRACKERC 
B.1 Message Crackers 
B.2 Child Control宏 
B.3 API宏 
附录 C 编程环境 
C.1 CMNHDR.H头文件 
C.1.1 4级警告 
C.1.1 Windows版本 
C.1.2 STRICT宏 
C.1.3 CPU Prtability宏 
C.1.4 标准编码(Unicode) 
C.1.5 chDIMOF宏 
C.1.6 chBEGINTHEADEX宏 
C.1.7 chASSERT 宏和chVERIFY宏 
C.1.8 chHANDLE_DLGMSG宏 
C.1.9 chassert宏和chVERIFY宏 
C.1.10 chMB宏 
C.1.11 chINITSTRUCT宏 
C.1.12 chSETDLGICONS宏 
C.1.13 chWARNIFUNICODEUNDERWIN 95宏 
C.1.14 Pragma Message Helper宏 
C.1.15 链接指令 
C.2 在源文件中不能对项目进行设置 


::下载地址::

BCCN本地下载 
开通VIP
可免资源分下载所有资源
::下载本资源的人也下载了::
::作者其它资源::
 
>> 评论
 
热门Tag:
 
编程中国 版权所有,并保留所有权利。 在线客服
微信扫码咨询

Powered by BCCN 1.020, Processed in 0.011377 second(s)
Copyright©2010-2024, BCCN.NET, All Rights Reserved

在线客服
微信扫码咨询