第二章
2020-10-29 17:37:52 2 举报
AI智能生成
《CLR via c#》 第二章笔记
作者其他创作
大纲/内容
.NET Framework部署目标
将类型生成到模块中
生成标准PE文件(exe可执行文件)
响应文件(rsp)
包含一组编译命令行开关的文件
MScorlib.dll
包含所有核心类型,Byte,Char,String,Int32等
MScorEE(Microsoft .NET Common Language Runtime Execution Engine)
Windows支持三种应用程序
控制台用户界面(Console User Interface)CUI
图形用户界面GUI
Windows Store应用
CSC.exe(C sharp compiler)
元数据概述
托管PE组成
PE32(+)头
包含windows要求的标准信息
CLR头
包含模块生成时面向的CLR的主次版本号,一些标志,
一个MethodDef token(指定了模块的入口方法,前提是CUI,GUI或WStore执行体),
一个可选的强名称数字签名。最后CLR头包含模块内部的一些元数据表的大小和偏移量。
总之CLR头在CorHdr.h中有具体格式定义
一个MethodDef token(指定了模块的入口方法,前提是CUI,GUI或WStore执行体),
一个可选的强名称数字签名。最后CLR头包含模块内部的一些元数据表的大小和偏移量。
总之CLR头在CorHdr.h中有具体格式定义
元数据
元数据
由几个表构成的二进制数据块
三种表
三种表
定义表(definition table)
引用表(reference table)
清单表(manifest table)
定义表
ModuleDef
TypeDef
MethodDef
FieldDef
ParamDef
PropertyDef
EventDef
EventDef
PropertyDef
ParamDef
FieldDef
ModuleDef
对模块进行标识
TypeDef
MethodDef
引用表
AssemblyRef
ModuleDef
TypeRef
每个项包含名称和一个引用(位置)
MemberRef
MemberRef
ModuleDef
TypeRef
AssemblyRef
TypeRef
将模块合并成程序集
清单
程序集
特点
定义了可重用类型
用一个版本号标记
可以关联安全信息
AL程序链接器
清单元数据表
AssemblyDef
FileDef
ManifestResourceDef
ExportedTypesDef
程序集版本资源信息
语言文化
简单管理控制
自由主题
自由主题
0 条评论
下一页