子曾经曰过

  博客园  :: 首页  ::  ::  ::  :: 管理

文章分类 -  Microsoft .NET框架程序设计 学习笔记

摘要:1.4 执行程序集代码托管模块中包含着元数据和IL代码,IL是一种独立于CPU的机器语言,它高级的地方在于能理解对象类型,并且拥有很多高级的指令,这些指令可以创建和初始化对象,调用对象上的虚方法,以及直接操作数组元素,甚至有抛出和捕获异常的指令,可以看做是一个面向对象的机器语言。C#是一种高级语言,编译后产生的就是IL代码。也可以直接以汇编语言的方式编写IL程序,微软的IL汇编器 ILAsm.exe和反汇编器ILDasm.exe。任何高级语言大多数情况下提供的只是CLR全部功能的一个子集。但IL汇编语言允许开发人员获取CLR所有的功能。另一个关于IL要记住的要点是它并不束缚于任何特定的CPU平 阅读全文
posted @ 2011-02-17 22:35 人的本质是什么?

摘要:1.3 加载通用语言运行时CLR一个程序集或者是一个可执行应用程序,或者是一个包含供可执行应用程序使用的一组类型(组件)的DLL。CLR负责管理包含在程序集里的代码的运行,也就是说程序集的运行是由CLR运行时来执行的。如何判断机器上是否安装了.NET框架(具有CLR)?System32目录下是否有MSCorEE.dll。如果要看安装了哪些.NET版本,看HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFrameWork\policy有几个值就可以了。当生成一个EXE程序集时,编译器 /链接器会产生一些特殊的信息,并将他们嵌入到结果程序集的PE文件表头及其各个 阅读全文
posted @ 2011-02-17 22:18 人的本质是什么?

摘要:1.2 将托管模块组合为程序集最简单的托管模块就是csc *.cs 产生的一个exe/dll等格式的PE文件。什么事程序集?一个程序要运行,可能需要不止一个dll文件,可能还需要其他的如图片,文本等各种资源协同合作。程序集(Assembly)是一个或多个托管模块,以及一些资源文件的逻辑组合,这里注意是逻辑组合,这就意味着不一定在同一个目录下(那么逻辑在哪儿呢?),程序集是组件服用,以及实施安全策略和版本策略的最小单位。最简单的程序集就是只有一个托管模块,没有引用资源文件。那么这个程序集就是托管模块。对于一个可重用,可部署,可实施版本管理的组件来说,程序集允许我们分离它的逻辑表示和物理表示(你可 阅读全文
posted @ 2011-02-17 22:01 人的本质是什么?

摘要:1.1 源代码编译为托管代码.NET框架的核心是通用语言运行时CLR,是一种可被各种不同的变成语言所使用的运行时。(什么是运行时?runtime?干吗用的?)为什么说.NET是个框架,简单理解它支持多种语言在.NET下共同完成一个任务。能这样做的基础就是多种语言最后产生的是托管模块。我们可以用任何支持CLR的语言来创建源代码,然后用相应编译器进行分析编译,最后生成一个托管模块。托管模块是一个需要CLR才能执行的标准的WINDOWS可移植可执行(PE)文件。这个1.1的图是不是显示的没有很完整?一个托管模块的组成部分由PE表头,CLR表头,元数据和IL(重金爱你语言)代码组成。下面简单说下各个部 阅读全文
posted @ 2011-02-17 21:32 人的本质是什么?