原文:[CLR via C#]1.2 将托管模块合并成程序集 1.CLR是不和托管模块一起工作的,CLR是和程序集一起工作的. 2. 程序集是一个或多个托管模块/资源文件的逻辑性分组.   3. 程序集是重用.安全性以及版本控制的最小单位.   4. 程序集取决于你对编译器的选择,可以生产单文件程序集,也可以生产多文件程序集.在CLR中,程序集相当于一个"组件".   5.将托管模块合并成程序集图示: 生成的 程序集会包含一个名为"清单"(maniest)的数据块.…
下图展示了编译源代码文件的过程.如图所示,可用支持 CLR 的任何一种语言创建源代码文件.然后,用一个对应的编译器检查语法和分析源代码.无论选用哪一个编译器,结果都是一个托管模块(managedmodule).托管模块是一个标准的 32 位 Microsoft Windows 可移植执行体(PE32)文件 6 ,或者是一个标准的 64 位Windows 可移植执行体(PE32+)文件,它们都需要 CLR 才能执行.顺便说一句,托管的程序集总是利用了 Windows 的数据执行保护(Data Ex…
本文是为了学习程序集而整理的网上资料,主要包括两个部分,概念和使用,前部分讲怎样理解程序集,后部分讲述怎样使用的细节. 程序集与托管模块的概念 "程序集与托管代码块"(摘自Himage的blog),希望大家看了此篇文章后对程序集的概念清楚一点     如果你正在开发面向DotNet平台的应用程序,那么你肯定对"程序集"和"托管模块"这两个概念不陌生,这是DotNet带来的术语.这两个概念很容易混淆,有人认为它们指的是同一样事物,其实不然.这里,我…
本文脉络图如下: 1.CLR(Common Language Runtime)公共语言运行时简介 (1).公共语言运行时是一种可由多种编程语言一起使用的"运行时". (2).CLR的核心功能可由面向CLR的所有语言使用,例如:"运行时"使用异常来报告错误,因此面向CLR的所有语言都使用异常来报告错误.另外,CLR允许创建线程,所以所有面向CLR的编程语言都允许创建线程. (3).运行时,CLR并不关心程序使用的是哪种语言,只要该语言是面向CLR的就行. 2.面向CL…
好了,还是这张图,还是一样的Hello world. 因为本章其实很多都是讲一些命令行编译啊什么鬼的配置类的东西,要用的时候直接百度或者回头查书就可以了, 所以了解一下也就行了,也没有记录下来,接下来讲得只是我认为很有用的东西. 关于引用 请看上图,MyTest程序集下面有个引用,引用里面大家都知道有很多dll,而我们的源代码中只有那5个using引用某dll里的具体的命名空间. (引用这些dll只会对编译器造成一点影响,并不会影响最终生成的文件,更不会去影响最终的性能) 也就是说,无论你引用多…
程序集的内部结构 在看程序集的结构之前,我们先来看托管模块的结构. 托管模块由四部分组成:PE32头.CLR头.元数据(Metadata).IL代码.其中PE32头是用来决定托管模块运行的系统环境(32位.64位)的,CLR头饰用来描述CLR版本等信息的,这两者不是我们的重点,我们主要来讨论元数据,和IL代码.元数据其实是一些用来描述程序集.托管模块.类型.类型的成员之间的关系的表(tables),我们可以将这些表分为三类 定义表.引用表.Manifest,我们通常所受的托管模块是不包含Mani…
一.基本概念: --托管模块:一个标准的32的可移植执行体(PE32)文件或一个标准的64位可移植执行体(PE32+)文件.由用支持CLR的任何一种语言创建的源代码文件,再经过相应的编译器检查语法和分析源代码,编译生成.如下:   --程序集:由一或者多个模块/资源文件的逻辑性组合.程序集是重用.安全性以及版本控制的最小单元.     可以将.exe与.dll文件认为是一个程序集:其中.exe文件是一个自己执行的程序集,而.dll将被其他程序集加载后运行.   二.模块与程序集概念的类比    …
前言 近段时间工作需要用到了这块知识,遂加急补了一下基础,CLR中这一章节反复看了好多遍,得知一二,便记录下来,给自己做一个学习记录,也希望不对地方能够得到补充指点. 1,.托管代码和非托管代码的区别 2.托管堆是什么? 3.托管堆基础,托管堆分配资源 4.内存泄漏 内存溢出.内存损坏 5.C# new操作符分配资源 6.垃圾回收算法 7.代:提升性能 8.垃圾回收触发条件 9.大对象 10.使用需要特殊清理的类型 11.使用包装了本机资源的类型 一.托管代码和非托管代码的区别 托管代码:执行过…
第一部分 CLR基础:第3章 共享程序集和强命名程序集…
如何将自己写的verilog模块封装成IP核 (2014-11-21 14:53:29) 转载▼ 标签: 财经 分类: 我的东东 =======================第一篇======================= 如何将自己写的verilog模块封装成IP核 将你的设计制作成BlackBox,也就是网表文件,这样别人看不到你的设计但是可以调用你的模块了.详细的参考信息如下:1. 什么是BlackBox- 一个大的设计中可以用到一系列网表文件作为输入的一部分而并不全部使用HDL文件…