导航

随笔分类 -  .Net Framework

摘要:所有在 CLR 上执行的程序都是存储在一个叫做 Module 的单元中。这个Module就像是一个容器,由二进制流组成,存放在本地或者服务器上。CLR Module 是PE可执行文件的扩展版本,并且 Module 本身也是 Win32 Module。那么,一个Module是由那些部分组成的呢?实际上,一个 Module 由二部分组成:Header,.text Section。而其主要内容都是存储在 .text Section 当中的。下面就详细说一下.text Section 中都包含哪些东西。.text Section 实际由3部分组成:code,metadata,resource。其中,c 阅读全文

posted @ 2012-01-09 23:34 雨夜孤鹤 阅读(555) 评论(0) 推荐(0)

摘要:前文讲过, Modules 是.net 中程序存储的最小单位。而 Assembly是程序的最小部属单位,一个 Assembly 由一个或多个 Modules 组成。Assembly 是一个逻辑概念,而Module是一个物理概念,是实际存在的 byte 流。Assembly 实际上是对一个或几个 module 的引用。上面介绍了 assembly 的基本概念。学习一个东西应该从他的原理来入手这样才能有所收获,所以为什么 .net 要设计出这样的一个概念呢?原因主要有两个:因为当一个程序由几部分组成的时候,当load module的时候就可以先load初始化的部分,而其他部分可以当需要的时候再lo 阅读全文

posted @ 2011-10-07 21:52 雨夜孤鹤 阅读(365) 评论(0) 推荐(0)

摘要:说明:本系列内容是《Essential .Net》一书中的文章的翻译,并且添加了一下个人拙见与疑问。意在抛砖引玉,与大家分享经验,交流学习。我们为CLR(公共语言运行时)编写的程序是以 Modules 为存储单元的。一个 Modules 是一种存储在本地的字节流文件。接下来剖析一下 CLR Module的格式:总体来讲,CLR Module 格式是 PE 文件 格式的扩展应用,即在通常的PE文件格式基础上进行了一些扩展。与此同时,CLR Module 本身也是一个可以被 LoadLibrary调用的 Win32 模块【也许是为了与其他模块的兼容性】。虽然沿用了PE 文件格式,但 CLR Mod 阅读全文

posted @ 2011-05-26 00:51 雨夜孤鹤 阅读(279) 评论(0) 推荐(0)