托管模块的组成部分

程序集 与 托管模块 解析 程序集 与 托管模块 程序集 与 托管模块 程序集 与 托管模块 程序集 与 托管模块 立即下载

我们可以使用任何支持CLR的编程语言来创建源代码文件。然后使用相应的编译器来做语法检查和源代码分析。但是不管使用的是何种编译器,最后生成的结果都是一个托管模块(Managed Module)。托管模块是一个需要CLR才能执行的标准WindowsPE(Portable executable,简称PE)文件。

下表描述了一个托管模块的各个组成部分

组成部分

描述

PE表头

标准的Windows PE文件表头,类似于通用对象文件格式(Common Object File Format,简称COFF)表头。该表头指出了文件的类型:GUI(图像用户界面),CUI(控制台用户界面),或者DLL(译注:DLL在以前表示Windows中的动态链接库文件,即Dynamic Link Library,它是以动态链接的方式提供的一组函数库。在.net平台中,由于和传统的动态链接库文件有着相同的扩展名.dll,所以DLL文件的名称被沿用了下来,但其含义已经有所改变。.NET中的DLL特指程序集文件的一种形式)另外该表头还包括一个时间标记用于表示文件创建的时间。对于仅包含IL代码的模块,该表头的大多数信息会被忽略。对于包含有本地CPU代码的模块,该表头还会包含有关本地CPU代码的一些信息。

CLR表头

包含标识托管模块的一些信息(可以被CLR或者一些实用工具解析)。这些信息包括托管模块所需要的CLR版本号,一些标记,托管模块入口点方法(Main方法)的MethodRef元数据标记,以及有关托管模块的元数据、资源、强命名、标记和其他一些意义不是太大的信息的位置和尺寸

元数据

每个托管模块都包含一些源数据表。元数据表主要分两种,一种用于描述源代码中定义的类型和成员,一种用于描述源代码中引用的类型和成员

中间语言(IL)代码

编译器在编译源代码时产生的指令。CLR在运行时会将IL代码编译成本地CPU指令

大多数早先的编译器产生的代码都是面向特定CPU的体系的。

[Unity_Plastic SCM小技巧] 使用 UnityYAMLMerge 工具合并场景和预制件文件 首先YAMLMerge工具其实并不局限于PlasticSCM,git也可以,它是内置在Editor内的一个更加智能的版本控制工具,只不过正常不会启用,他的目录在C:\Program Files\Unity\Editor\Data\Tools\UnityYAMLMerge.exe(Unity Editor安装目录),MAC上:/Applications/Unity/Unity.app/Content... 阅读详情

相关推荐

LlamaIndex 入门实战

LlamaIndex是一个“数据框架”,用于帮助构建LLM应用程序。它提供了各种工具,包括数据连接器,用于摄取现有数据源和数据格式(API,PDF,文档,SQL等),以及用于将数据结构化(索引,图形)以便与LLM轻松使用的方式。此外,LlamaIndex还提供了高级的检索/查询接口,可以输入任何LLM输入提示,并返回检索到的上下文和增强知识的输出。它还允许与外部应用程序框架(如LangChain,Flask,Docker,ChatGPT等)轻松集成。

AIGC搞起 1万+

C#与CLR学习笔记(1)—— 程序集的结构与CLR的启动

本文是《CLR via C#》(第四版)第1章的要点总结。 下一篇:读书笔记(2)—— 程序集的强名称、部署与查找 目录 1 托管模块与程序集的概念 1.1 托管模块的概念与构成 1.2 程序集 2 CLR 与 .Net Framework 的关系 3 CLR的启动过程 4 程序集的执行 4.1 IL代码的执行 4.2 JIT编译与执行 4.3 安全性验证 5 CTS,CL...

一土宁的博客 689

Elasticsearch连接中断:深入解析Connection reset by peer问题及优化策略

本文深入解析Elasticsearch连接中断问题,特别是Connection reset by peer错误的成因与解决方案。从TCP层的心跳机制到客户端与服务端的配置差异,详细介绍了网络不稳定、防火墙拦截等常见原因,并提供了六种优化策略,包括KeepAlive调整、TCP参数调优和智能重试机制等,帮助提升Elasticsearch连接的稳定性。

weixin_42546392的博客 410

一、CLR基础——首先搞明白它是一个什么东西,做哪些事情,起什么作用

公共语言运行时(Common Language Runtime CLR)是一个可由多种编程语言使用的“运行时”,核心功能包括:内存管理,程序集加载,安全性、异常处理和线程同步,可由面向CLR的所有语言使用。

qq_56005481的博客 6042

H5获取手机相机或相册图片两种方式-Android通过webview传递多张照片给H5

H5调用公共获取图片文件方法,在android手机端,H5主要依赖Webview,这边在webview声明并重写该方法onShowFileChooser使用工具类打开相机或相册,可以两种方式安卓原生方式或者利用第三方组件库方式选中图片,返回uri列表给H5H5收到uri照片列表,并且使用前端方式展示创造价值,乐哉分享!

m0_74823947的博客 3096

第三节: 串口通信(用CubeMX学习STM32)

用CubeMX学习STM32, 串口通信学习, 通过轮询方式和中断方式两种方式进行通信演示。 STM32F407zgt6

Kevin_8_Lee的博客 8904

CLR基础全面版-概念、执行模型、托管模块、程序集、FCL

CLR基础知识

qq_42399932的博客 3401

100天精通Python(基础篇)——第1天:Python从起源到应用的全面解析(附上Python、PyCharm、VSCode下载安装详细教程)

100天精通Python(基础篇)——第1天:Python从起源到应用的全面解析(附上Python、PyCharm、VSCode下载安装详细教程)

努力让自己发光,对的人才能迎着光而来 101万+

.Net 托管模块与程序集的关系

一、基本概念: --托管模块:一个标准的32的可移植执行体(PE32)文件或一个标准的64位可移植执行体(PE32+)文件。由用支持CLR的任何一种语言创建的源代码文件,再经过相应的编译器检查语法和分析源代码,编译生成。如下: --程序集:由一或者多个模块/资源文件的逻辑性组合。程序集是重用、安全性以及版本控制的最小单元。     可以将.exe与.dll文件认为是一个程序集

kmguo的专栏 6854

智能绿植管家:基于 ESP32 的室内植物自动补光与环境调控系统

本文设计的基于 ESP32 的室内植物自动补光与生长环境调控系统,实现了植物生长环境的自动化、智能化管理。硬件选型合理、接线简单,软件逻辑清晰、易于调试,能够有效解决室内植物生长环境不适的问题。系统具备良好的实用性和扩展性,可为园艺爱好者和小型培育场所提供稳定、高效的植物养护方案。

weixin_42300449的博客 146

Jetson nano 系列之2—板载摄像头IMX219启动

我选用的是亚博科技jetson nano的开发板。

驽马十驾,功在不舍;锲而不舍,金石可镂。 4274

.NET相关概念

在研究 HybridCLR 之前,需要先详细了解 .NET相关概念。 包括:什么是.NET、.NET 开发和运行环境、.NET 多语言开发条件、.NET 跨平台运行原理(托管执行过程)、.NET实现、.NET 应用发布、Unity开发者应关心的重点等、

NRatel的博客 3624

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

CLR学习:1---托管模块的组成部分

Sundy 459

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

托管模块与程序集

CLR实际上并不是和托管模块来打交道的,它直接打交道的是程序集。程序集是一个或者多个托管模块,以及一些资源文件的逻辑组合。程序集才是组件复用,以及实施安全策略和版本策略的最小单位。在程序集中有一个清单,描述了组成程序集的文件。默认情况下,编译器会将产生的托管模块转换为一个程序集。也就是说,c#编译器产生的是一个包含了清单的托管模块。其中的清单表明程序集中仅包含了一个文件。对于仅包含一个托管

lastBeachhead的专栏 1945

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

日落20190228001 - C#基础之CLR的编译过程及托管模块的作用

(1)CLR的编译过程 Created with Raphaël 2.2.0编译语言编译器:把源代码编译成托管模块托管模块(包括:中间语言和元数据)JIT编译器:把托管模块编译成本地CPU指令本地CPU指令 (2)托管模块的组件 中间语言:Intermediate Language,简称IL,由于是托管模块的语言,IL代码=托管代码。 元数据:是一组数据表,既有描述托管模块定义的类型和成员的数据表...

海盐布丁的表述形式 331

源代码编译为托管模块后,托管模块都包含哪些东西?

 我们使用任何支持CLR的编程语言创建源代码文件,经过编译器编译之后,生成的结果都是托管模块(Manage Module)。托管模块是需要CLR才能执行的标准windows可移植可执行(PE)文件。 下面主要描述托管模块的各个组成部分: 部分 描述 PE表头 该

lastBeachhead的专栏 1389

CLR探索系列:托管PE/COFF文件格式侧窥

一直都想写篇文章来说说那些尘封在PE/Coff文件格式下的那些事,还有Metadata和EEClass是如何表现了一个静态的PE格式文件在内存中的映射结构。   在这篇文章里,我不去介绍windows下PE文件的具体格式,也不去介绍一个托管或者是非托管PE文件的加载运行方式,更加不去介绍一个PE文件里面的各个头部以及整体结构的各个部分的含义。   而是侧重于介绍,基于托管环境下,DotNet对...

weixin_33720078的博客 206

后端——网址 (url) 的组成、url模块、querystring模块、mime模块、各种路径、静态资源托管、网页的加载流程(面试题)

当前页面的网址“协议//ipport/src/news/index.htmlquerystringhash”"./src/18.jpg"==>“协议//ipport/src/news/src/18,jpg”"src/18.jpg"==>“协议//ipport/src/news/src/18,jpg”./src/1.jpgsrc/1.jpg写这个路径的文件的页面是在本地打开的。“协议//ipport/src/news/src/18,jpg”............

qq_52301431的博客 1283

1.CLR的执行模型 --1.1 将源代码编译成托管模块

什么是托管模块? 1. 任何使用面向CLR的编程语言,经过编译器后,生成的结果就是托管模块 2. 托管模块是标准的32位Microsof windons 可移植体(PE32)文件或64位 PE32+ 1. 托管模块的组成部分 1. PE32或PE32+头 1. 标准Windows PE头 1. PE32格式,文件能在32位和...

weixin_30369087的博客 137

将源代码编译成托管模块

以前没有写过读书笔记,也不知道怎么样的格式是合适的,或方便自己和别人阅读,暂且我把重要的基础的列出来,复习时按难点复习好了。 1:托管模块的组成部分:a.PE或PE32+头 对于包含本地CPU代码的模块,这个头包含与本地CPU代码有关的信息。b.CLR头 c.元数据 每个托管模块都包含元数据表。主要有两种类型的表:一种类型的表描述源代码中定义的类型和成员;另一种类型的表描述源代码引用的类型...

weixin_30618985的博客 122

CLR的执行模型(1):将源代码编译成托管模块

终于下决心写这个系列了。 之前看过那本《C#图解教程》,但是被某大佬推荐了《CLR via C#》,才发现自己对真正的力量一无所知。 不过也正因为无知,所以才下决心开始在博客上记录这些吧。 (一)CLR简介 CRL,全名Common Language Runtime,公共语言运行库,是一个多个编程语言使用的“运行时”。CLR的核心功能,比如内存管理、程序集加载、安全性、异常处理、线程同步,...

weixin_33906657的博客 307

.net开发平台体系结构学习笔记

1.1托管代码    托管模块是.net里最小的编译单位,而程序集是最小的布署单位。    托管模块的组成部分:pe表头、clr表头、元数据、中间语言(IL) 1.2加载通用语言运行时     1.7通用语言规范 .com允许不同语言窗机创建的对象能够进行相互之间的通信。 1.8与非托管代码的互操作       托管代码使用p/invoke(平台调用)的机制来调用非托管代码。       托管代

咏雪的专栏 1232

一、CLR的执行模型(1)

1.1 将源码编译成托管模块 公共语言运行时(Common Language Runtime,CLR)是一个可由多种编程语言使用的“运行时”。CLR的核心功能(内存管理、程序集加载、安全性、异常处理和线程同步)。 托管模块:标准的32位Microsoft Windows 可移植执行体(PE32)文件或者标准的64位Window 可移植执行体(PE32+),它们都需要CL...

aisunxian5454的博客 174

《CLR var C#》读书笔记-CLR的执行模型

1、使用CSC命令操作。 2、所有面向CLR的编译器最终生成的就是一个托管模块。托管模块是一个32位/64位的可执行执行体文件(PE32、PE32+文件),需要CLR才能执行。 托管模块由4部分组成: 第一部分:PE32/PE32+头。1、文件格式。其本身的文件格式决定了其是否可以在64位机器上运行。另外,该头还包括了GUI、CUI或DLL文件,及文件的生成时间等信息。另外,本部分还包括了本

郑林的专栏 1603
上一篇: 如何遍历Windows的事件日志
下一篇: 一次惊险的javascript经历,汗,现在想想都后怕
捷哥1999
博客等级 码龄25年 1090粉丝 12原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值