图书介绍

Delphi源代码分析PDF|Epub|txt|kindle电子书版本网盘下载

Delphi源代码分析
  • 周爱民著 著
  • 出版社: 北京:电子工业出版社
  • ISBN:7121003031
  • 出版时间:2004
  • 标注页数:350页
  • 文件大小:72MB
  • 文件页数:370页
  • 主题词:软件工具-程序设计-代码-程序分析

PDF下载


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

下载说明

Delphi源代码分析PDF格式电子书版下载

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

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

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

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

图书目录

第一部分Delphi内核深入剖析(Ⅰ)1

第9章多线程的实现及调度 (251

目 录1

序1

前言1

1.1 MiniDExe如何实现内核最小化3

第1章最小化Delphi内核3

1.1.1 MiniDExe中的System.pas单元4

1.1.2 MiniDExe中的Syslnit.pas单元5

1.1.3 MiniDExe中的项目文件MiniDExe.dpr6

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.1引用计数与增加引用48

2.6引用-计数-写复制与类型信息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.1单元初始化与结束化的内部例程77

4.3单元初始化与结束化77

4.3.2其他初始化例程79

4.4模块初始化与结束化79

4.4.1模块入口代码79

4.4.2编译器决定的程序执行流程80

5.1 Win32应用程序:EXE83

5.1.1 适应Win32应用程序的最简化内核83

第5章面向Windows开发的基本实现83

5.1.2初始化例程程_nitExe()85

5.1.3内部模块表管理例程86

5.1.4EXE启动例程_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 动态链接库:DLL99

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

6.5.1磁盘文件上的入口代码(RAWAddress)163

6.5.2反编译器使用相对基地址定位的入口代码(RVA)164

6.5.3载入到内存之后(运行期)的入口代码(VA)164

第二部分Delphi内核深入剖析(Ⅱ)167

第7章Delphi的内存管理器169

7.1 Delphi的内存管理器实现框架169

7.2内存页管理171

7.4MemoryManager及相关例程172

7.3堆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.2多层(嵌套)的异常处理222

8.5.1异常触发(Raise)222

8.5.3异常展开(Unwind)224

8.5.4异常响应(Notify)227

8.5.5顶层异常处理229

8.6使用面向对象技术的异常类232

8.6.1异常列表、RaiseFrame与ExceptionRecord233

8.6.2未知异常映射:ExceptObjProc234

8.6.3不使用SysUtils.pas单元的应用程序236

8.6.4_RaiseExcept()、_RaiseAgain()与_DoneExcept()例程237

8.6.5异常对象240

8.6.6异常类型检测的依赖性问题247

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模块中的TLS265

9.4.4动态TLS:DLL模块中的TLS266

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中的线程同步类305

9.7.3线程对象的WaitFor()方法310

9.8多线程环境下的内存管理器312

10.1资源字符串315

10.1.1隐含的调用:LoadResString()例程315

第10章资源的管理和使用315

10.1.2_InitResStrings()例程317

10.1.3_InitResStringlmports()例程319

10.1.4_Initlmports()例程320

10.2 Delphi编译的PE文件的默认资源322

10.2.1PACKAGEINFO资源323

10.2.2 PACKAGEOPTIONS资源324

10.2.3 DVCLAL资源326

10.2.4 DESCRlPTION资源327

10.3其他327

11.1开发DOS保护模式程序329

11.1.1 Delphi 1.0与DOS 16位保护模式程序329

第11章突破Delphi在应用开发上的限制329

11.1.2 WDOSX、Delphi 2.0-4.0与DOS 32位保护模式程序331

11.1.3 DWP、DWPL、Delphi 5.0-7.0与DOS 32位保护模式程序中333

的图形接口333

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

热门推荐