托管模块的组成
PE32或PE32+头 |
标准的Window PE头跟COFF有点像,如果使用的是PE32格式,那么该模块能够在Win32/64操作系统下面执行,如果使用的是PE 32+格式那么只能在Win64环境下执行.;另外该头还包含了文件类型信息(GUI,CUI或者DLL),并且包含了一个文件创建日期的时间戳.For modules that contain only IL code, the bulk of the information in the PE32(+) header is ignored. For modules that contain native CPU code, this header contains information about the native CPU code. |
CLR头 | 包含了组成该托管模块的主要信息,该头包含了需要的CLR版本信息,Main函数入口点,模块的元数据信息,资源,强命名信息,和一些标识等等的位置和大小, |
Matedata | 每个托管模块都包含metadata表,metadata表分为两种类型:描述你的代码中定义的类型和成员的metadata表和代码中引用的数据类型和成员的metadata表 |
IL代码 | 编译器编译源代码产生的IL代码.在运行时.CLR会把IL解释成机器码来执行. |