托管模块的定义:托管模块是一个需要CLR才能够执行的标准Windows可移植可执行文件。(portalbe executable 简称PE)。
托管模块的生成过程:使用CLR支持的编程语言,编写源代码文件。然后使用该语言的编译器进行语法分析和语义分析,然后生成托管代码。
托管模块的结构:
1.PE表头的信息:
一个字段指出了文件的类型: GUI,CUI或者 DLL。(这里的DLL特指.net中程序集文件的一个形式。)
一个表示时间标记的字段:表示文件创建的时间。
其他信息在当托管模块中只包含IL代码时,将会被忽略。
当模块中包含本地CPU代码时,表头还会有关于本地CPU代码的一些信息。
2.CLR表头 :
托管模块所需要的CLR版本号
一些标记
托管模块入口点方法的MethodDef元数据标记
关于托管模块的元数据、资源、强命名、标记和其他一些信息的位置和尺寸
3.元数据:
元数据表格的集合。
元数据表格分为两种:一种用于描述源代码中定义的类型和成员;一种用于描述源代码中引用的类型和 成员。
元数表格还有一中清单表。
4.中间语言代码:
编译器在编译源代码时产生的指令。CLR在运行会将IL代码编译成本地CPU指令。
托管模块的生成过程:使用CLR支持的编程语言,编写源代码文件。然后使用该语言的编译器进行语法分析和语义分析,然后生成托管代码。
托管模块的结构:
1.PE表头的信息:
一个字段指出了文件的类型: GUI,CUI或者 DLL。(这里的DLL特指.net中程序集文件的一个形式。)
一个表示时间标记的字段:表示文件创建的时间。
其他信息在当托管模块中只包含IL代码时,将会被忽略。
当模块中包含本地CPU代码时,表头还会有关于本地CPU代码的一些信息。
2.CLR表头 :
托管模块所需要的CLR版本号
一些标记
托管模块入口点方法的MethodDef元数据标记
关于托管模块的元数据、资源、强命名、标记和其他一些信息的位置和尺寸
3.元数据:
元数据表格的集合。
元数据表格分为两种:一种用于描述源代码中定义的类型和成员;一种用于描述源代码中引用的类型和 成员。
元数表格还有一中清单表。
4.中间语言代码:
编译器在编译源代码时产生的指令。CLR在运行会将IL代码编译成本地CPU指令。