[CLR via C#]1.1 将源代码编译成托管代码

news/2024/7/20 14:12:11 标签: 内存管理, c/c++, c#
原文: [CLR via C#]1.1 将源代码编译成托管代码

1. 公共语言运行时(Common Language Runtime,CLR)是一种可由多种编程语言使用的"运行时"。

2. CLR的核心功能(比如内存管理,程序集加载、安全性、异常处理和线程同步等)可由面向CLR的所有语言使用。

3. 用一个对应的编译器编译源代码之后,结果都是一个 托管模块
4.  托管模块是一个标准的32/64位Microsoft Windows 可移植执行体(PE32/PE32+)文件,它们都需要CLR才能执行。
 
5. 托管的程序集利用Windows的 数据执行保护地址空间布局随机化增强整个系统的安全性。
 
6. 托管模块的各个组成部分
 
7. 本地代码编译器生成的是面向特定CPU架构(比如x86、x64和IA64)的代码。
 
8. 每个面向CLR的编译器生成的都是IL(中间语言)代码。IL有时称为托管代码,因为CLR要管理它的执行。除了生成IL,面向CLR的每个编译器还要在每个托管模块中生成完整的元数据。
 
9.  元数据是一组数据表。其中一些数据表描述了模块中定义的内容,比如类型及其成员。还有一些元数据表描述了托管模块引用的内容,比如导入的类型及其成员。元数据总是与包含IL代码的文件关联。事实上,元数据总是嵌入和IL代码相同的EXE/DLL文件中,两者密不可分。
 
10.  元数据的用途
  •     编译时,元数据消除了对本地C/C++头和库文件的需求,因为在负责实现类型/成员的IL代码文件中,已包含和引用的类型/成员有关的全部信息。编译器可直接从托管代码中读取元数据。
  •     Visual Studio 使用元数据帮你写代码。它的"智能感知"技术可以解析元数据。
  •     CLR的代码验证过程使用元数据确保代码执行“类型安全”的操作。
    ......

 


http://www.niftyadmin.cn/n/1781780.html

相关文章

mysql表的组成_数据库中的数据表由什么组成?

在数据库中,数据表是由表名、表中的字段和表的记录三个部分组成的。在建立表之前都必须先设计它的结构,表结构描述了一个表的框架。设计表结构实际上就是定义组成一个表的字段个数,每个字段的名称、数据类型和长度等信息。在建立表之前都必须…

ZooKeeper 分布式锁实践(上篇)排它锁

作者 | Sunny杏仁后端工程师,专注高并发和分布式编程,Golang爱好者。前面我们使用 Redis 实现了一个简单的分布式排它锁,它的主要问题在于无法及时得知锁状态的变化,虽然能够通过 Redis 的订阅发布模式来实现通知的功能&#xff0…

jQuery对数据和对象的操作

<script type"text/javascript" src"jquery-1.8.2.min.js"></script> <script type"text/javascript">$(function(){ var arr{"张三":80,"李四":78,"赵武":85}; var str"<li classtitl…

mysql数据自定义随机_Mysql 自定义随机字符串的实现方法

前几天在开发一个系统&#xff0c;需要用到随机字符串&#xff0c;但是mysql的库函数有没有直接提供&#xff0c;就简单的利用现有的函数东拼西凑出随机字符串来.下面简单的说下实现当时.1.简单粗暴.select ..., substring(MD5(RAND()),floor(RAND()*26)1,6) as rand_str .....…

ZooKeeper 分布式锁实践(下篇)读写锁

作者 | Sunny杏仁后端工程师&#xff0c;专注高并发和分布式编程&#xff0c;Golang爱好者。在 ZooKeeper 分布式锁实践&#xff08;上篇&#xff09;排它锁 中我们通过代码实践了如何使用 ZooKeeper 组件来实现排他锁。排他锁简单易用&#xff0c;但是缺点也很明显&#xff1a…

微软发布6月安全公告 及时修复补丁

2019独角兽企业重金招聘Python工程师标准>>> 北京时间昨日凌晨&#xff0c;微软例行发布了2014年6月的7个安全公告&#xff0c;其中包括2个“严重”级别和5个“重要”级别的漏洞。本次发布的安全补丁数量很大&#xff0c;修复了Windows系统、IE浏览器、office等软件…

手把手交你配置L2L站点到站点××× ...

实验目的:让总部和南方分公司之间 网段 1.1.1.0/24 与 2.2.2.0/24可以互相访问.1.1.1.0 网段和2.2.2.0网段 上网时候流量都从自己公司的 internet 线路出去.特别说这点是因为有各别公司所有的上网流量都让从总部走.原因是什么呢.当然了你要是下个电影神马的就要小心了.这个拓扑…

基于 Apollo 的 配置中心 Matrix 2.0 实践总结

作者 | 夏梓耀 杏仁后端工程师&#xff0c;励志成为计算机艺术家配置中心首先简单介绍一下什么是配置中心&#xff0c;我们为什么需要它&#xff0c;为什么要花力气去完善它。微服务化的挑战传统单体应用&#xff08; monolithic apps &#xff09;因种种潜在缺陷&#xff0…