• CLR via C# 第一章 (1)


    将源代码编译成托管代码:

    编译C#源代码的过程:C#源代码-->C#编译器-->托管模块(中间语言和元数据)

    托管模块的结构:

    1. PE32或PE32+头:标准windowsPE头文件。PE32格式,只能在windows 32位系统运行。还标示了文件类型:GUI、CUI、DLL。  文件生成时间。
    2. CLR头:CLR版本、托管模块入口方法main的MethodDef元数据标记,模块元数据,资源,强名称。
    3. 元数据:两种类型的表:一、描述源代码中定义的类型和成员。二、描述源代码引用的类型和成员。
    4. IL中间语言代码:编译器编译源代码时生成的代码,在运行时,CLR将IL编译成本地cpu指令。

    每个面向CLR的编译器生成的都是IL中间语言代码。除了生成IL,面向CLR的每个编译器还要在每个托管模块中生成完整的元数据,metadata。元数据是一组数据表,描述了模块中定义的内容和模块中引用的内容。元数据总是嵌入和代码相同的exe或dll文件中,是两者密不可分。(同步)

    将托管模块合并成程序集:

    CLR和程序集一起工作。程序集是一个或多个模块/资源文件的逻辑分组,是重用、安全性以及版本控制的最小单元。

    清单是有元数据表构成的另一种集合,描述了构成程序集的文件,由程序集中的文件实现的公开导出的类型(由Public标识的类型),以及与程序集关联在一起的资源或数据文件。

    对于一个可重用的、可保护的、可版本控制的组件,程序集把它的逻辑表示和物理表示区分开来。

  • 相关阅读:
    C
    数论::整除分块
    洛谷P1262 间谍网络
    洛谷P1649 【[USACO07OCT]障碍路线Obstacle Course】
    HDU2066dijkstra模板题
    Captain Flint and Treasure
    CodeForces
    CodeForces
    HDU-1827
    HDU 1811
  • 原文地址:https://www.cnblogs.com/Adobe_fans/p/1988450.html
Copyright © 2020-2023  润新知