《Delphi源代码分析》扫描版
基本信息
打开支付宝首页搜“673273051”领红包,领到大红包的小伙伴赶紧使用哦!
相关书籍
- 《Delphi程序开发范例宝典》电子书[]
- 《Delphi源代码分析》扫描版[]
- 《Delphi 7基础教程》扫描版[]
- 《Delphi开发技术大全》扫描版[]
- 《Delphi函数参考大全》扫描版[]
- 《Delphi面向对象编程思想》第一版[]
- 《实用Delphi数据库开发经典案例解析》扫描版[]
- 《Delphi程序开发图书合集更新ing》扫描版[]
- 《趣味程序导学Delphi》文字版[]
- 《软件工程师园地:Delphi》更新完毕/共4讲[WMV][]
内容介绍
目录:
åº i
å‰è¨€ I
第一部分 Delphiå†…æ ¸æ·±å…¥å‰–æž(I) 1
第1ç« æœ€å°åŒ–Delphiå†…æ ¸ 3
1.1 MiniDExeå¦‚ä½•å®žçŽ°å†…æ ¸æœ€å°åŒ– 3
1.1.1 MiniDExeä¸çš„System.paså•å…ƒ 4
1.1.2 MiniDExeä¸çš„SysInit.paså•å…ƒ 5
1.1.3 MiniDExeä¸çš„项目文件MiniDExe.dpr 6
1.2 ä¸€äº›å…¶ä»–çš„å†…æ ¸ä¼˜åŒ– 6
1.3 为什么è¦ç ”究最å°åŒ–å†…æ ¸ 7
第2ç« åŸºæœ¬æ•°æ®ç±»åž‹çš„实现 9
2.1 基本数æ®ç±»åž‹ 9
2.2 å˜é‡ä¸Žå¸¸é‡ 11
2.2.1 全局å˜é‡ä¸Žå±€éƒ¨å˜é‡ 11
2.2.2 动æ€åˆ†é…çš„å†…å˜ 12
2.2.3 æ¢ä¸€ä¸ªæ–¹å¼æ¥ç†è§£ 13
2.2.4 å¸¸é‡ 14
2.3 æ•°æ®ç»“构的实现 16
2.3.1 简å•类型 16
2.3.2 å—符串 16
2.3.3 æž„é€ ç±»åž‹ 26
2.3.4 指针类型 28
2.3.5 过程类型 28
2.4 æ•°æ®ç»“构相关的例程 29
2.4.1 æ ‡å‡†Pascal的内置例程 30
2.4.2 å—符串æ“作例程 31
2.5 å˜é‡çš„ç±»åž‹æ£€æµ‹ä¸Žå¼ºåˆ¶è½¬æ¢ 47
2.6 引用ï¼è®¡æ•°ï¼å†™å¤åˆ¶ä¸Žç±»åž‹ä¿¡æ¯ 48
2.6.1 å¼•ç”¨è®¡æ•°ä¸Žå¢žåŠ å¼•ç”¨ 48
2.6.2 â€œå¢žåŠ å¼•ç”¨â€ä½•æ—¶å‘生 49
2.6.3 å¢žåŠ å¼•ç”¨çš„æ“作是ä¾èµ–ç±»åž‹ä¿¡æ¯æ¥å®žçŽ°çš„ 51
2.6.4 写å¤åˆ¶ä¸Žå€¼å‚数的备份 53
第3ç« BASM(Borland汇编è¯è¨€)ç²¾è¦ 55
3.1 BASMæ¦‚å¿µç®€è¦ 55
3.2 表达å¼çš„类别与类型 56
3.3 æ•°æ®å®šä¹‰å’Œæ•°æ®ç±»åž‹å¼ºåˆ¶è½¬æ¢ 57
3.4 例程入å£å‚æ•°åŠè°ƒç”¨çº¦å®š 61
3.5 例程和API的调用与æµç¨‹æŽ§åˆ¶ 62
3.6 完全汇编例程与内嵌汇编例程 65
3.7 汇编例程ä¸çš„返回值约定 66
3.8 å…¶ä»– 67
第4ç« åˆå§‹åŒ–与结æŸåŒ–过程 71
4.1 å˜é‡çš„åˆå§‹åŒ–与结æŸåŒ– 71
4.1.1 åˆå§‹åŒ–çš„å¿…è¦æ€§ 72
4.1.2 如何åˆå§‹åŒ– 73
4.1.3 如何结æŸåŒ– 74
4.2 例程的åˆå§‹åŒ–与结æŸåŒ– 76
4.3 å•å…ƒåˆå§‹åŒ–与结æŸåŒ– 77
4.4 模å—åˆå§‹åŒ–与结æŸåŒ– 79
4.4.1 模å—å…¥å£ä»£ç 79
4.4.2 ç¼–è¯‘å™¨å†³å®šçš„ç¨‹åºæ‰§è¡Œæµç¨‹ 80
第5ç« é¢å‘Windowså¼€å‘的基本实现 83
5.1 Win32应用程åºï¼šEXE 83
5.1.1 适应Win32应用程åºçš„æœ€ç®€åŒ–å†…æ ¸ 83
5.1.2 åˆå§‹åŒ–例程_InitExe() 85
5.1.3 内部模å—表管ç†ä¾‹ç¨‹ 86
5.1.4 .EXEå¯åŠ¨ä¾‹ç¨‹_StartExe() 87
5.1.5 应用程åºçš„结æŸåŒ–控制 88
5.2 32ä½çš„DOS:控制å°åº”ç”¨ç¨‹åº 91
5.2.1 控制å°åº”用程åºçš„æ¨¡å—å…¥å£ä»£ç 91
5.2.2 控制å°åº”用程åºçš„æœ€å°åŒ–实现 92
5.2.3 控制å°åº”用程åºçš„Delphi实现 93
5.2.4 文件æ“作例程与控制å°åº”ç”¨ç¨‹åº 94
5.2.5 控制å°çš„å¼€å¯ä¸Žå…³é— 97
5.2.6 CRTå•元与Inputã€Outputçš„é‡è½½ 98
5.3 动æ€é“¾æŽ¥åº“:DLL 99
5.3.1 丢失的DllMain() 99
5.3.2 _InitLib()例程 101
5.3.3 _StartLib()例程 101
5.3.4 .DLL的结æŸåŒ–过程 102
5.3.5 DllProc与DllMain()çš„ä¸åŒ 105
5.3.6 动æ€é“¾æŽ¥åº“çš„å†…æ ¸æœ€å°åŒ– 106
5.4 Delphi的动æ€é“¾æŽ¥åº“:包 108
5.4.1 包的主è¦è§„则 108
5.4.2 Delphiä¸çš„包与普通DLL的区别 110
5.4.3 包的DllMain() 111
5.4.4 包的载入例程LoadPackage() 112
5.4.5 真æ£çš„åˆå§‹åŒ–例程InitializePackage() 112
5.4.6 包的å¸è½½ä¾‹ç¨‹UnloadPackage() 115
5.4.7 包的基本输出例程 115
5.4.8 内部例程_PackageLoad()与_PackageUnload() 116
5.4.9 åŒ…çš„å†…æ ¸æœ€å°åŒ– 117
5.5 å…¶ä»– 118
5.5.1 åˆå§‹åŒ–上下文ä¸OuterContext域的使用 118
5.5.2 å…¥å£ä»£ç ä¸çš„å †æ ˆä½¿ç”¨æ·±å…¥åˆ†æž(内å˜çŽ°åœº) 119
5.5.3 å†è®ºå…¥å£ä»£ç 123
第6ç« Delphi的积木艺术(PE) 127
6.1 PEæ–‡ä»¶ç»“æž„æ¦‚è¦ 127
6.1.1 文件头 129
6.1.2 节表 131
6.1.3 节 132
6.1.4 PEæ–‡ä»¶ä¸Žå†…å˜æ˜ å°„ 134
6.1.5 有关相对虚地å€çš„计算 138
6.2 Delphiçš„PE文件头ä¸ä¸€äº›é‡è¦çš„域 142
6.3 Delphiçš„PE文件ä¸ä¸€äº›é‡è¦çš„节 144
6.3.1 线程局部å˜å‚¨(.tlså’Œ.rdata) 144
6.3.2 资æºèŠ‚(.rsrc) 145
6.3.3 导入ã€å¯¼å‡ºè¡¨(.idataå’Œ.edata) 146
6.3.4 æ•°æ®èŠ‚ä¸Žä»£ç 节(DATAã€BSSå’ŒCODE) 154
6.3.5 é‡å®šä½èŠ‚(.reloc) 157
6.4 3.5K的秘密 159
6.4.1 Delphi的PE文件头部 159
6.4.2 Delphiçš„PE文件的节åŠå…¶é»˜è®¤å¯¹é½ 160
6.4.3 还å¯èƒ½æ›´å°å— 160
6.4.4 3.5K代ç çš„å†…å˜æ˜ å°„ 161
6.5 å…¥å£ç‚¹ 162
第二部分 Delphiå†…æ ¸æ·±å…¥å‰–æž(II) 167
第7ç« Delphi的内å˜ç®¡ç†å™¨ 169
7.1 Delphi的内å˜ç®¡ç†å™¨å®žçŽ°æ¡†æž¶ 169
7.2 内å˜é¡µç®¡ç† 171
7.3 å † 172
7.4 MemoryManageråŠç›¸å…³ä¾‹ç¨‹ 172
7.5 GetMem.incä¸çš„é‡è¦ä¾‹ç¨‹ 174
7.5.1 å †å—åŠå…¶ç®¡ç†ä¾‹ç¨‹ 175
7.5.2 虚地å€ç©ºé—´(Address space)ç®¡ç† 178
7.5.3 å·²æäº¤çš„内å˜ç©ºé—´(Committed space)ç®¡ç† 179
7.5.4 用户调用例程(actually calls)的实现 180
7.5.5 åˆå§‹åŒ–ã€ç»“æŸåŒ–与其他辅助例程 194
7.6 é历全部内å˜å— 195
7.7 共享内å˜ç®¡ç†å™¨ 197
7.8 第三方内å˜ç®¡ç†å™¨ 200
7.9 å°ç»“ 201
第8ç« é”™è¯¯å’Œå¼‚å¸¸ 203
8.1 错误 203
8.2 æ–言 206
8.3 Windows与Delphiä¸çš„å¼‚å¸¸å¤„ç†æœºåˆ¶æ¦‚è¦ 209
8.4 ç¼–è¯‘å™¨å¯¹å¼‚å¸¸å¤„ç†æœºåˆ¶çš„实现 212
8.4.1 最å°åŒ–å†…æ ¸çš„å¯ç¤º 212
8.4.2 从æ“作系统的角度æ¥ç†è§£ç¼–译器行为 216
8.4.3 try..finally/except..endè¯æ³•关键å—与内部例程 219
8.5 基本(exceptåž‹)å¼‚å¸¸å¤„ç† 221
8.5.1 异常触å‘(Raise) 221
8.5.2 多层(嵌套)çš„å¼‚å¸¸å¤„ç† 222
8.5.3 异常展开(Unwind) 223
8.5.4 异常å“应(Notify) 227
8.5.5 é¡¶å±‚å¼‚å¸¸å¤„ç† 229
8.6 使用é¢å‘对象技术的异常类 233
8.6.1 异常列表ã€RaiseFrame与ExceptionRecord 233
8.6.2 æœªçŸ¥å¼‚å¸¸æ˜ å°„ï¼šExceptObjProc 235
8.6.3 ä¸ä½¿ç”¨SysUtils.paså•å…ƒçš„åº”ç”¨ç¨‹åº 236
8.6.4 _RaiseExcept()ã€_RaiseAgain()与_DoneExcept()例程 238
8.6.5 异常对象 241
8.6.6 异常类型检测的ä¾èµ–性问题 247
第9ç« å¤šçº¿ç¨‹çš„å®žçŽ°åŠè°ƒåº¦ 251
9.1 æ“作系统的进程与线程 252
9.1.1 线程的å¯åŠ¨è¿‡ç¨‹ 253
9.1.2 主线程与用户线程å¯åŠ¨è¿‡ç¨‹çš„æ¯”è¾ƒ 255
9.1.3 çº¿ç¨‹æœ‰å“ªäº›ç‹¬ç«‹å…ƒç´ 256
9.2 æ“ä½œç³»ç»Ÿçš„çº¿ç¨‹è°ƒåº¦æ¦‚è¦ 257
9.3 基本的多线程应用 258
9.4 线程å˜é‡(线程局部å˜å‚¨) 261
9.4.1 线程局部å˜å‚¨(TLS)的实质 262
9.4.2 编译器的准备工作 263
9.4.3 陿€TLS:EXE模å—ä¸çš„TLS 265
9.4.4 动æ€TLS:DLL模å—ä¸çš„TLS 266
9.5 å†è®ºFS段 268
9.6 线程类(TThread) 272
9.6.1 线程执行体(Execute) 275
9.6.2 çº¿ç¨‹ä¸Žä¸»çº¿ç¨‹çš„åŒæ¥(Synchronize) 277
9.6.3 控制å°åº”ç”¨çš„å¤šçº¿ç¨‹åŒæ¥(第三方的WakeMainThread例程) 287
9.6.4 çº¿ç¨‹ä¸æ¢å’Œç»“æŸ(Terminate) 292
9.7 çº¿ç¨‹åŒæ¥å¯¹è±¡ 297
9.7.1 çº¿ç¨‹åŒæ¥æ–¹æ³• 298
9.7.2 Delphiä¸çš„çº¿ç¨‹åŒæ¥ç±» 306
9.7.3 线程对象的WaitFor()方法 311
9.8 多线程环境下的内å˜ç®¡ç†å™¨ 312
第10ç« èµ„æºçš„管ç†å’Œä½¿ç”¨ 315
10.1 资æºå—符串 315
10.1.1 éšå«çš„调用:LoadResString()例程 315
10.1.2 _InitResStrings()例程 317
10.1.3 _InitResStringImports()例程 319
10.1.4 _InitImports()例程 320
10.2 Delphi编译的PEæ–‡ä»¶çš„é»˜è®¤èµ„æº 322
10.2.1 PACKAGEINFOèµ„æº 323
10.2.2 PACKAGEOPTIONSèµ„æº 324
10.2.3 DVCLALèµ„æº 326
10.2.4 DESCRIPTIONèµ„æº 327
10.3 å…¶ä»– 327
第11ç« çªç ´Delphi在应用开å‘上的é™åˆ¶ 329
11.1 å¼€å‘DOSä¿æŠ¤æ¨¡å¼ç¨‹åº 329
11.2 å¼€å‘Windows9xä¸Šçš„é©±åŠ¨ç¨‹åº 335
11.2.1 Delphi编译的.OBJ文件 335
11.2.2 第三方的链接器处ç†Delphiçš„.OBJ文件的问题 336
11.2.3 在Delphiä¸ç¼–写VxD驱动程åºä»£ç 337
11.2.4 é“¾æŽ¥ç›®æ ‡æ–‡ä»¶å¹¶è¾“å‡ºVxDé©±åŠ¨ç¨‹åº 338
11.3 å¼€å‘WinNT/2000ä¸Šçš„é©±åŠ¨ç¨‹åº 339
11.4 å…¶ä»– 342
术è¯è¡¨ 343
å‚考书目 347
