Welcome![Sign In][Sign Up]
Location:
Search - 23.228

Search list

[ELanguage编译原理及实践

Description:

目      录
译者序
前言
第1章   概论 1
1.1   为什么要用编译器 2
1.2   与编译器相关的程序 3
1.3   翻译步骤 5
1.4   编译器中的主要数据结构 8
1.5   编译器结构中的其他问题 10
1.6   自举与移植 12
1.7   TINY样本语言与编译器 14
1.7.1   TINY语言 15
1.7.2   TINY编译器 15
1.7.3   TM机 17
1.8   C-Minus:编译器项目的一种语言 18
练习 19
注意与参考 20
第2章   词法分析 21
2.1   扫描处理 21
2.2   正则表达式 23
2.2.1   正则表达式的定义 23
2.2.2   正则表达式的扩展 27
2.2.3   程序设计语言记号的正则表达式 29
2.3   有穷自动机 32
2.3.1   确定性有穷自动机的定义 32
2.3.2   先行、回溯和非确定性自动机 36
2.3.3   用代码实现有穷自动机 41
2.4   从正则表达式到DFA 45
2.4.1   从正则表达式到NFA 45
2.4.2   从NFA到DFA 48
2.4.3   利用子集构造模拟NFA 50
2.4.4   将DFA中的状态数最小化 51
2.5   TINY扫描程序的实现 52
2.5.1   为样本语言TINY实现一个扫描
程序 53
2.5.2   保留字与标识符 56
2.5.3   为标识符分配空间 57
2.6   利用Lex 自动生成扫描程序 57
2.6.1   正则表达式的Lex 约定 58
2.6.2   Lex输入文件的格式 59
2.6.3   使用Lex的TINY扫描程序 64
练习 65
编程练习 67
注意与参考 67
第3章   上下文无关文法及分析 69
3.1   分析过程 69
3.2   上下文无关文法 70
3.2.1   与正则表达式比较 70
3.2.2   上下文无关文法规则的说明 71
3.2.3   推导及由文法定义的语言 72
3.3   分析树与抽象语法树 77
3.3.1   分析树 77
3.3.2   抽象语法树 79
3.4   二义性 83
3.4.1   二义性文法 83
3.4.2   优先权和结合性 85
3.4.3   悬挂else问题 87
3.4.4   无关紧要的二义性 89
3.5   扩展的表示法:EBNF和语法图 89
3.5.1   EBNF表示法 89
3.5.2   语法图 91
3.6   上下文无关语言的形式特性 93
3.6.1   上下文无关语言的形式定义 93
3.6.2   文法规则和等式 94
3.6.3   乔姆斯基层次和作为上下文无关
规则的语法局限 95
3.7   TINY语言的语法 97
3.7.1   TINY的上下文无关文法 97
3.7.2   TINY编译器的语法树结构 98
练习 101
注意与参考 104
第4章   自顶向下的分析 105
4.1   使用递归下降分析算法进行自顶向下
的分析 105
4.1.1   递归下降分析的基本方法 105
4.1.2   重复和选择:使用EBNF 107
4.1.3   其他决定问题 112
4.2   LL(1)分析 113
4.2.1   LL(1)分析的基本方法 113
4.2.2   LL(1)分析与算法 114
4.2.3   消除左递归和提取左因子 117
4.2.4   在LL(1)分析中构造语法树 124
4.3   First集合和Follow集合 125
4.3.1   First 集合 125
4.3.2   Follow 集合 130
4.3.3   构造LL(1)分析表 134
4.3.4   再向前:LL(k)分析程序 135
4.4   TINY语言的递归下降分析程序 136
4.5   自顶向下分析程序中的错误校正 137
4.5.1   在递归下降分析程序中的错误
校正 138
4.5.2   在LL(1)分析程序中的错误校正 140
4.5.3   在TINY分析程序中的错误校正 141
练习 143
编程练习 146
注意与参考 148
第5章   自底向上的分析 150
5.1   自底向上分析概览 151
5.2   LR(0)项的有穷自动机与LR(0)分析 153
5.2.1   LR(0)项 153
5.2.2   项目的有穷自动机 154
5.2.3   LR(0)分析算法 157
5.3   SLR(1)分析 160
5.3.1   SLR(1)分析算法 160
5.3.2   用于分析冲突的消除二义性
规则 163
5.3.3   SLR(1)分析能力的局限性 164
5.3.4   SLR(k)文法 165
5.4   一般的LR(1)和LALR(1)分析 166
5.4.1   LR(1)项的有穷自动机 166
5.4.2   LR(1)分析算法 169
5.4.3   LALR(1)分析 171
5.5   Yacc:一个LALR(1)分析程序的
生成器 173
5.5.1   Yacc基础 173
5.5.2   Yacc选项 176
5.5.3   分析冲突与消除二义性的规则 180
5.5.4   描述Yacc分析程序的执行 183
5.5.5   Yacc中的任意值类型 184
5.5.6   Yacc中嵌入的动作 185
5.6   使用Yacc生成TINY分析程序 186
5.7   自底向上分析程序中的错误校正 188
5.7.1   自底向上分析中的错误检测 188
5.7.2   应急方式错误校正 188
5.7.3   Yacc中的错误校正 189
5.7.4   TINY中的错误校正 192
练习 192
编程练习 195
注意与参考 197
第6章   语义分析 198
6.1   属性和属性文法 199
6.1.1   属性文法 200
6.1.2   属性文法的简化和扩充 206
6.2   属性计算算法 207
6.2.1   相关图和赋值顺序 208
6.2.2   合成和继承属性 212
6.2.3   作为参数和返回值的属性 219
6.2.4   使用扩展数据结构存储属性值 221
6.2.5   语法分析时属性的计算 223
6.2.6   语法中属性计算的相关性 226
6.3   符号表 227
6.3.1   符号表的结构 228
6.3.2   说明 230
6.3.3   作用域规则和块结构 232
6.3.4   同层说明的相互作用 236
6.3.5   使用符号表的属性文法的一个
扩充例子 237
6.4   数据类型和类型检查 241
6.4.1   类型表达式和类型构造器 242
6.4.2   类型名、类型说明和递归类型 246
6.4.3   类型等价 248
6.4.4   类型推论和类型检查 253
6.4.5   类型检查的其他主题 255
6.5   TINY语言的语义分析 257
6.5.1   TINY的符号表 258
6.5.2   TINY语义分析程序 259
练习 260
编程练习 264
注意与参考 264
第7章   运行时环境 266
7.1   程序执行时的存储器组织 266
7.2   完全静态运行时环境 269
7.3   基于栈的运行时环境 271
7.3.1   没有局部过程的基于栈的环境 271
7.3.2  带有局部过程的基于栈的环境 281
7.3.3   带有过程参数的基于栈的环境 284
7.4   动态存储器 286
7.4.1   完全动态运行时环境 286
7.4.2   面向对象的语言中的动态存储器 287
7.4.3   堆管理 289
7.4.4   堆的自动管理 292
7.5   参数传递机制 292
7.5.1   值传递 293
7.5.2   引用传递 294
7.5.3   值结果传递 295
7.5.4   名字传递 295
7.6   TINY语言的运行时环境 296
练习 297
编程练习 303
注意与参考 304
第8章   代码生成 305
8.1   中间代码和用于代码生成的数据
结构 305
8.1.1   三地址码 306
8.1.2   用于实现三地址码的数据结构 308
8.1.3   P-代码 310
8.2   基本的代码生成技术 312
8.2.1   作为合成属性的中间代码或目标
代码 312
8.2.2   实际的代码生成 314
8.2.3   从中间代码生成目标代码 317
8.3   数据结构引用的代码生成 319
8.3.1   地址计算 319
8.3.2   数组引用 320
8.3.3   栈记录结构和指针引用 325
8.4   控制语句和逻辑表达式的代码生成 328
8.4.1   if 和while 语句的代码生成 328
8.4.2   标号的生成和回填 330
8.4.3   逻辑表达式的代码生成 330
8.4.4   if 和while 语句的代码生成过程
样例 331
8.5   过程和函数调用的代码生成 334
8.5.1   过程和函数的中间代码 334
8.5.2   函数定义和调用的代码生成过程 336
8.6   商用编译器中的代码生成:两个案
例研究 339
8.6.1   对于80×86的Borland 3.0版C编
译器 339
8.6.2   Sun SparcStation的Sun 2.0 C编
译器 343
8.7   TM:简单的目标机器 346
8.7.1   Tiny Machine的基本结构 347
8.7.2   TM模拟器 349
8.8   TINY语言的代码生成器 351
8.8.1   TINY代码生成器的TM接口 351
8.8.2   TINY代码生成器 352
8.8.3   用TINY编译器产生和使用TM
代码文件 354
8.8.4   TINY编译器生成的TM代码文
件示例 355
8.9   代码优化技术考察 357
8.9.1   代码优化的主要来源 358
8.9.2   优化分类 360
8.9.3   优化的数据结构和实现技术 362
8.10   TINY代码生成器的简单优化 366
8.10.1   将临时变量放入寄存器 366
8.10.2   在寄存器中保存变量 367
8.10.3   优化测试表达式 367
练习 368
编程练习 371
注意与参考 372
附录A   编译器设计方案 373
附录B   小型编译器列表 381
附录C   Tiny Machine模拟器列表 417


Platform: | Size: 7612048 | Author: wesong | Hits:

[Other resource23.228

Description: TS23.228的中文文档,对于学习IMS有很大的帮助-TS23.228 Chinese documents, learning IMS will be very helpful
Platform: | Size: 1606934 | Author: 王东辉 | Hits:

[Other宽带无线通信OFDM技术

Description: 内容简介 《宽带无线通信OFDM技术》系统地阐释了OFDM技术的基本原理、关键技术及与其他一些技术的结合,重点分析了OFDM技术在无线物理层上的一些关键的问题,并论述了OFDM技术在蜂窝移动通信系统中的应用。《宽带无线通信OFDM技术》共有8章:第1章介绍了OFDM技术的历史及其发展过程,第2~4章详细地讲述了OFDM技术的基本原理及其关键技术,第5~7章讨论了OFDM技术和其他一些技术的结合,第8章对OFDM技术应用到蜂窝移动通信中的一些问题进行了简单介绍。 《宽带无线通信OFDM技术》适用于从事移动通信系统研究和开发的技术人员,也可以作为高等院校信息与通信专业师生的参考书。 目录 第1章 OFDM技术简介 1 1.1 移动通信的发展状况 1 1.2 OFDM系统的发展现状 2 1.3 OFDM系统的优缺点 3 1.4 OFDM系统的关键技术 4 参考文献 5 第2章 OFDM技术基础 7 2.1 OFDM的基本原理 8 2.1.1 OFDM的产生和发展 8 2.1.2 串并变换 9 2.1.3 子载波调制 9 2.1.4 DFT的实现 12 2.1.5 保护间隔、循环前缀和子载波数的选择 12 2.1.6 加窗技术 18 2.1.7 RF调制 20 2.1.8 OFDM基本参数的选择 21 2.2 在无线局域网中的应用 22 2.2.1 WLAN IEEE 802.11a 23 2.2.2 HiperLAN/2系统 33 2.3 小结 41 参考文献 41 第3章 OFDM信号检测技术 43 3.1 差分解调 43 3.1.1 时域差分 44 3.1.2 频域差分 44 3.2 相干解调 44 3.3 信道估计 46 3.3.1 基本介绍 46 3.3.2 慢衰落信道下的信道估计算法 47 3.4 同步技术 63 3.4.1 频率同步的必要性 63 3.4.2 OFDM系统同步的实现 65 3.5 小结 76 参考文献 77 第4章 OFDM中的峰均比问题 80 4.1 峰均比定义及分布 80 4.2 解决峰均比问题的方法 82 4.2.1 限幅类技术 82 4.2.2 编码类技术 95 4.2.3 概率类技术 100 4.3 小结 112 参考文献 113 第5章 OFDM多址接入技术 116 5.1 OFDM的多种接入方式 116 5.1.1 跳频OFDMA(FH-OFDMA)方案 118 5.1.2 OFDM-FDMA基本原理 119 5.1.3 OFDM-TDMA基本原理 121 5.2 多载波CDMA 124 5.2.1 概述 124 5.2.2 多载波CDMA方案 125 5.2.3 MC-CDMA系统描述 128 5.2.4 MC-CDMA系统参数最佳化 138 5.2.5 MC-CDMA性能分析 139 5.2.6 MC-CDMA的扩频序列 141 5.2.7 VSF-OFCDM 145 5.2.8 高速高容量的宽带无线接入技术 150 5.3 小结 152 参考文献 152 第6章 OFDM自适应技术 155 6.1 自适应策略的根据:信道状态信息 155 6.2 自适应功率分配 159 6.2.1 基于信道容量最优化的原则 159 6.2.2 基于误比特率性能最优化的原则 160 6.3 自适应调制技术 166 6.3.1 Chow算法 167 6.3.2 Fischer算法 167 6.3.3 简单分组比特分配算法(SBLA) 168 6.4 联合自适应比特、调制和功率分配 170 6.4.1 系统模型 171 6.4.2 单用户比特分配算法 173 6.4.3 多用户子载波和比特分配 174 6.4.4 性能比较 177 6.5 小结 183 参考文献 183 第7章 MIMO-OFDM技术 184 7.1 空时码概述 184 7.2 空时分组码 185 7.2.1 STBC的基本原理 185 7.2.2 STBC在3GPP及3GPP2中的应用 188 7.3 空时格码 190 7.3.1 空时格形编码的系统模型 190 7.3.2 独立准平坦衰落情况下的空时编码标准 191 7.3.3 准静态平坦衰落下的空时码构建 193 7.4 空间复用技术 197 7.4.1 分层空时编码方案 198 7.4.2 对角分层空时编码的译码与接收 199 7.5 改进的空时处理技术 200 7.5.1 基于STBC的技术 200 7.5.2 基于空时格码(STTC)的技术 201 7.5.3 空间复用技术 202 7.6 MIMO信道建模 202 7.6.1 MIMO系统的信道容量 203 7.6.2 MIMO信道的相关性 205 7.6.3 相关矩阵的计算 206 7.7 多输入多输出正交频分复用技术 208 7.7.1 MIMO-OFDM系统 208 7.7.2 MIMO-OFDM系统中的空时编码技术 211 7.7.3 MIMO-OFDM系统中的空时频编码技术 214 7.8 小结 215 参考文献 215 第8章 OFDM在蜂窝移动通信系统中的应用 218 8.1 快衰落信道下的信道估计 218 8.1.1 系统等效基带模型 218 8.1.2 信道估计算法 219 8.2 双工模式和多用户复用方式 226 8.2.1 基于OFDM的多址接入方式 226 8.2.2 TDD和FDD 227 8.2.3 各种不同的多址接入和双工系统 228 8.3 频率复用策略 233 8.4 小结 235 参考文献 236
Platform: | Size: 8201713 | Author: chenliwolf@163.com | Hits:

[VC/MFC《Windows核心编程(第四版)》中文版.rar

Description: 目 录 译者序 前言 第一部分 程序员必读 第1章 对程序错误的处理 1 1.1 定义自己的错误代码 4 1.2 ErrorShow示例应用程序 5 第2章 Unicode 11 2.1 字符集 11 2.1.1 单字节与双字节字符集 11 2.1.2 Unicode:宽字节字符集 12 2.2 为什么使用Unicode 13 2.3 Windows 2000与Unicode 13 2.4 Windows 98与Unicode 13 2.5 Windows CE与Unicode 14 2.6 需要注意的问题 14 2.7 对COM的简单说明 14 2.8 如何编写Unicode源代码 15 2.8.1 C运行期库对Unicode的支持 15 2.8.2 Windows定义的Unicode数据类型 17 2.8.3 Windows中的Unicode函数和ANSI 函数 17 2.8.4 Windows字符串函数 19 2.9 成为符合ANSI和Unicode的应用程序 19 2.9.1 Windows字符串函数 19 2.9.2 资源 22 2.9.3 确定文本是ANSI文本还是Unicode 文本 22 2.9.4 在Unicode与ANSI之间转换字符串 23 第3章 内核对象 27 3.1 什么是内核对象 27 3.1.1 内核对象的使用计数 27 3.1.2 安全性 28 3.2 进程的内核对象句柄表 30 3.2.1 创建内核对象 30 3.2.2 关闭内核对象 32 3.3 跨越进程边界共享内核对象 32 3.3.1 对象句柄的继承性 32 3.3.2 改变句柄的标志 35 3.3.3 命名对象 36 3.3.4 终端服务器的名字空间 39 3.3.5 复制对象句柄 39 第二部分 编程的具体方法 第4章 进程 45 4.1 编写第一个Windows应用程序 46 4.1.1 进程的实例句柄 49 4.1.2 进程的前一个实例句柄 50 4.1.3 进程的命令行 50 4.1.4 进程的环境变量 51 4.1.5 进程的亲缘性 54 4.1.6 进程的错误模式 54 4.1.7 进程的当前驱动器和目录 54 4.1.8 进程的当前目录 55 4.1.9 系统版本 56 4.2 CreateProcess函数 58 4.2.1 pszApplicationName和 pszCommandLine 59 4.2.2 psa Process、psa Thread和 binherit Handles 60 4.2.3 fdwCreate 62 4.2.4 pvEnvironment 64 4.2.5 pszCurDir 64 4.2.6 psiStartInfo 64 4.2.7 ppiProcInfo 67 4.3 终止进程的运行 69 4.3.1 主线程的进入点函数返回 69 4.3.2 ExitProcess函数 69 4.3.3 TerminateProcess函数 70 4.3.4 进程终止运行时出现的情况 71 4.4 子进程 72 4.5 枚举系统中运行的进程 73 第5章 作业 91 5.1 对作业进程的限制 93 5.2 将进程放入作业 99 5.3 终止作业中所有进程的运行 99 5.4 查询作业统计信息 100 5.5 作业通知信息 103 5.6 JobLab示例应用程序 104 第6章 线程的基础知识 121 6.1 何时创建线程 121 6.2 何时不能创建线程 122 6.3 编写第一个线程函数 123 6.4 CreateThread函数 124 6.4.1 psa 124 6.4.2 cbStack 124 6.4.3 pfnStartAddr和pvParam 125 6.4.4 fdwCreate 126 6.4.5 pdwThreadID 126 6.5 终止线程的运行 127 6.5.1 线程函数返回 127 6.5.2 ExitThread函数 127 6.5.3 TerminateThread函数 127 6.5.4 在进程终止运行时撤消线程 128 6.5.5 线程终止运行时发生的操作 128 6.6 线程的一些性质 129 6.7 C/C++运行期库的考虑 131 6.7.1 Oops—错误地调用了Create Thread 138 6.7.2 不应该调用的C/C++运行期库函数 138 6.8 对自己的ID概念应该有所了解 139 第7章 线程的调度、优先级和亲缘性 142 7.1 暂停和恢复线程的运行 143 7.2 暂停和恢复进程的运行 144 7.3 睡眠方式 145 7.4 转换到另一个线程 145 7.5 线程的运行时间 146 7.6 运用环境结构 148 7.7 线程的优先级 152 7.8 对优先级的抽象说明 153 7.9 程序的优先级 156 7.9.1 动态提高线程的优先级等级 158 7.9.2 为前台进程调整调度程序 159 7.9.3 Scheduling Lab示例应用程序 160 7.10 亲缘性 167 第8章 用户方式中线程的同步 172 8.1 原子访问:互锁的函数家族 172 8.2 高速缓存行 177 8.3 高级线程同步 178 8.4 关键代码段 180 8.4.1 关键代码段准确的描述 182 8.4.2 关键代码段与循环锁 185 8.4.3 关键代码段与错误处理 185 8.4.4 非常有用的提示和技巧 186 第9章 线程与内核对象的同步 190 9.1 等待函数 191 9.2 成功等待的副作用 194 9.3 事件内核对象 195 9.4 等待定时器内核对象 204 9.4.1 让等待定时器给APC项排队 207 9.4.2 定时器的松散特性 209 9.5 信标内核对象 210 9.6 互斥对象内核对象 211 9.6.1 释放问题 213 9.6.2 互斥对象与关键代码段的比较 214 9.6.3 Queue示例应用程序 214 9.7 线程同步对象速查表 223 9.8 其他的线程同步函数 224 9.8.1 异步设备I/O 224 9.8.2 WaitForInputIdle 224 9.8.3 MsgWaitForMultipleObjects (Ex) 225 9.8.4 WaitForDebugEvent 225 9.8.5 SingleObjectAndWait 226 第10章 线程同步工具包 228 10.1 实现关键代码段:Optex 228 10.2 创建线程安全的数据类型和反信标 239 10.3 单个写入程序/多个阅读程序的保护 251 10.4 实现一个WaitForMultipleExpressions 函数 259 第11章 线程池的使用 274 11.1 方案1:异步调用函数 275 11.2 方案2:按规定的时间间隔调用函数 277 11.3 方案3:当单个内核对象变为已通知状态 时调用函数 283 11.4 方案4:当异步I/O请求完成运行时调用 函数 285 第12章 纤程 287 12.1 纤程的操作 287 12.2 Counter示例应用程序 289 第三部分 内 存 管 理 第13章 Windows的内存结构 299 13.1 进程的虚拟地址空间 299 13.2 虚拟地址空间如何分区 300 13.2.1 NuLL 指针分配的分区—适用于 Windows 2000和Windows 98 300 13.2.2 MS-DOS/16位Windows 应用程序兼容 分区—仅适用于Windows 98 301 13.2.3 用户方式分区—适用于Windows 2000 和Windows 98 301 13.2.4 64 KB禁止进入的分区—仅适用 于Windows 2000 302 13.2.5 共享的MMF分区—仅适用于 Windows 98 303 13.2.6 内核方式分区—适用于Windows 2000和Windows 98 303 13.3 地址空间中的区域 303 13.4 提交地址空间区域中的物理存储器 304 13.5 物理存储器与页文件 304 13.6 保护属性 307 13.6.1 Copy-On-Write 访问 308 13.6.2 特殊的访问保护属性的标志 309 13.7 综合使用所有的元素 309 13.7.1 区域的内部情况 312 13.7.2 与Windows 98地址空间的差别 315 13.8 数据对齐的重要性 319 第14章 虚拟内存 323 14.1 系统信息 323 14.2 虚拟内存的状态 330 14.3 确定地址空间的状态 336 14.3.1 VMQuery函数 337 14.3.2 虚拟内存表示例应用程序 343 第15章 在应用程序中使用虚拟内存 354 15.1 在地址空间中保留一个区域 354 15.2 在保留区域中的提交存储器 355 15.3 同时进行区域的保留和内存的提交 356 15.4 何时提交物理存储器 357 15.5 回收虚拟内存和释放地址空间区域 358 15.5.1 何时回收物理存储器 359 15.5.2 虚拟内存分配的示例应用程序 360 15.6 改变保护属性 368 15.7 清除物理存储器的内容 369 15.8 地址窗口扩展—适用于 Windows 2000 372 第16章 线程的堆栈 385 16.1 Windows 98下的线程堆栈 387 16.2 C/C++运行期库的堆栈检查函数 389 16.3 Summation示例应用程序 390 第17章 内存映射文件 397 17.1 内存映射的可执行文件和DLL 文件 397 17.1.1 可执行文件或DLL的多个实例 不能共享静态数据 398 17.1.2 在可执行文件或DLL的多个实 例之间共享静态数据 400 17.1.3 AppInst示例应用程序 404 17.2 内存映射数据文件 409 17.2.1 方法 1:一个文件,一个缓存 409 17.2.2 方法 2:两个文件,一个缓存 409 17.2.3 方法 3:一个文件,两个缓存 410 17.2.4 方法 4:一个文件,零缓存 410 17.3 使用内存映射文件 410 17.3.1 步骤 1:创建或打开文件内核 对象 411 17.3.2 步骤 2:创建一个文件映射内核 对象 412 17.3.3 步骤 3:将文件数据映射到进程 的地址空间 414 17.3.4 步骤4:从进程的地址空间中撤消 文件数据的映像 416 17.3.5 步骤 5和步骤 6:关闭文件映射对象 和文件对象 417 17.3.6 文件倒序示例应用程序 418 17.4 使用内存映射文件来处理大文件 426 17.5 内存映射文件与数据视图的相关性 427 17.6 设定内存映射文件的基地址 428 17.7 实现内存映射文件的具体方法 429 17.8 使用内存映射文件在进程之间共享 数据 431 17.9 页文件支持的内存映射文件 431 17.10 稀疏提交的内存映射文件 438 第18章 堆栈 451 18.1 进程的默认堆栈 451 18.2 为什么要创建辅助堆栈 452 18.2.1 保护组件 452 18.2.2 更有效的内存管理 453 18.2.3 进行本地访问 453 18.2.4 减少线程同步的开销 453 18.2.5 迅速释放堆栈 453 18.3 如何创建辅助堆栈 454 18.3.1 从堆栈中分配内存块 455 18.3.2 改变内存块的大小 456 18.3.3 了解内存块的大小 456 18.3.4 释放内存块 457 18.3.5 撤消堆栈 457 18.3.6 用C++程序来使用堆栈 457 18.4 其他堆栈函数 460 第四部分 动态链接库 第19章 DLL基础 463 19.1 DLL与进程的地址空间 464 19.2 DLL的总体运行情况 465 19.3 创建DLL模块 467 19.3.1 输出的真正含义是什么 469 19.3.2 创建用于非Visual C++工具 的DLL 471 19.4 创建可执行模块 472 19.5 运行可执行模块 474 第20章 DLL的高级操作技术 477 20.1 DLL模块的显式加载和 符号链接 477 20.1.1 显式加载DLL模块 478 20.1.2 显式卸载DLL模块 479 20.1.3 显式链接到一个输出符号 480 20.2 DLL的进入点函数 481 20.2.1 DLL_PROCESS_ATTACH通知 482 20.2.2 DLL_PROCESS_DETACH通知 483 20.2.3 DLL_THREAD_ATTACH通知 485 20.2.4 DLL_THREAD_DETACH通知 485 20.2.5 顺序调用DllMain 486 20.2.6 DllMain与C/C++运行期库 488 20.3 延迟加载DLL 489 20.4 函数转发器 499 20.5 已知的DLL 499 20.6 DLL转移 500 20.7 改变模块的位置 501 20.8 绑定模块 506 第21章 线程本地存储器 509 21.1 动态TLS 509 21.2 静态TLS 513 第22章 插入DLL和挂接API 515 22.1 插入DLL:一个例子 515 22.2 使用注册表来插入DLL 517 22.3 使用Windows挂钩来插入DLL 518 22.4 使用远程线程来插入DLL 531 22.4.1 Inject Library 示例应用程序 534 22.4.2 Image Walk DLL 541 22.5 使用特洛伊DLL来插入DLL 544 22.6 将DLL作为调试程序来插入 544 22.7 用Windows 98上的内存映射文件 插入代码 544 22.8 用CreateProcess插入代码 544 22.9 挂接API的一个示例 545 22.9.1 通过改写代码来挂接API 546 22.9.2 通过操作模块的输入节来挂接API 546 22.9.3 LastMsgBoxInfo示例应用程序 549 第五部分 结构化异常处理 第23章 结束处理程序 565 23.1 通过例子理解结束处理程序 566 23.2 Funcenstein1 566 23.3 Funcenstein2 566 23.4 Funcenstein3 568 23.5 Funcfurter1 568 23.6 突击测验:FuncaDoodleDoo 569 23.7 Funcenstein4 570 23.8 Funcarama1 571 23.9 Funcarama2 572 23.10 Funcarama3 572 23.11 Funcarama4:最终的边界 573 23.12 关于finally块的说明 574 23.13 Funcfurter2 575 23.14 SEH结束处理示例程序 576 第24章 异常处理程序和软件异常 578 24.1 通过例子理解异常过滤器和异常处理 程序 578 24.1.1 Funcmeister1 578 24.1.2 Funcmeister2 579 24.2 EXCEPTION_EXECUTE_HANDLER 580 24.2.1 一些有用的例子 581 24.2.2 全局展开 583 24.2.3 暂停全局展开 585 24.3 EXCEPTION_CONTINUE_ EXECUTION 586 24.4 EXCEPTION_CONTINUE_ SEARCH 588 24.5 Get Exception Code 589 24.6 Get Exception Information 592 24.7 软件异常 595 第25章 未处理异常和C++异常 598 25.1 即时调试 600 25.2 关闭异常消息框 601 25.2.1 强制进程终止运行 601 25.2.2 包装一个线程函数 601 25.2.3 包装所有的线程函数 601 25.2.4 自动调用调试程序 602 25.3 程序员自己调用UnhandledException Filter 602 25.4 UnhandledExceptionFilter函数的一些 细节 603 25.5 异常与调试程序 604 25.6 C++异常与结构性异常的对比 618 第六部分 窗 口 第26章 窗口消息 623 26.1 线程的消息队列 623 26.2 将消息发送到线程的消息队列中 625 26.3 向窗口发送消息 626 26.4 唤醒一个线程 630 26.4.1 队列状态标志 630 26.4.2 从线程的队列中提取消息的 算法 631 26.4.3 利用内核对象或队列状态标 志唤醒线程 634 26.5 通过消息发送数据 636 26.6 Windows如何处理ANSI/Unicode 字符和字符串 642 第27章 硬件输入模型和局部输入状态 645 27.1 原始输入线程 645 27.2 局部输入状态 646 27.2.1 键盘输入与焦点 647 27.2.2 鼠标光标管理 649 27.3 将虚拟输入队列同局部输入状态挂接 在一起 651 27.3.1 LISLab 示例程序 652 27.3.2 LISWatch 示例程序 666 第七部分 附 录 附录A 建立环境 675 附录B 消息分流器、子控件宏和API宏 686
Platform: | Size: 36814984 | Author: mrf341@163.com | Hits:

[Industry research23.228

Description: TS23.228的中文文档,对于学习IMS有很大的帮助-TS23.228 Chinese documents, learning IMS will be very helpful
Platform: | Size: 1606656 | Author: 王东辉 | Hits:

[Documents23[1].228ChineseVersion

Description: 3gpp ts 23.228文档中文版(3GPP TS 23.228 V7.0.0 (2005-06))-3gpp ts 23.228 Chinese version of the document (3GPP TS 23.228 V7.0.0 (2005-06))
Platform: | Size: 1606656 | Author: 海潮 | Hits:

[3G develop3gpp_ts_23.228v8.10.0

Description: 09年发布,包括UMTS协议,IMS的stage2-Digital cellular telecommunications system (Phase 2+) Universal Mobile Telecommunications System (UMTS) LTE IP Multimedia Subsystem (IMS) Stage 2 (3GPP TS 23.228 version 8.10.0 Release 8)
Platform: | Size: 1513472 | Author: tony | Hits:

[Program doc3GPP_TS_27.007

Description: 3G的AT指令标准 版本为:V8.7.0 (2009-03) 英文版-3G, AT commands standard version: V8.7.0 (2009-03) English
Platform: | Size: 391168 | Author: wind_runner | Hits:

CodeBus www.codebus.net