[CLR via C#]1.6 Framework类库~1.9与非托管代码的互操作性

原文:[CLR via C#]1.6 Framework类库~1.9与非托管代码的互操作性

1.6 Framework类库

1. .NET Framework中包含了Framework类库(Framework Class Library,FCL)。

2. FCL是一组DLL程序集的统称,其中含有数千个类型定义,每个类型公开一些功能。

 

1.7 通用类型系统

1. CLR是完全围绕类型展开的。

2. 类型为应用程序和其他类型公开了功能。通过类型,用一种编程语言写的代码能与另一种语言写的代码沟通。

3. 由于类型是CLR的根本,所有MicroSoft指制定了一个正式的规范,即"通用类型系统"(Common Type System,CTS),它描述了类型的定义和行为。

4. CTS规定,一个类型可以包含一个或者多个成员。比如:字段、方法、属性、事件等。

5. CTS还指定了类型可视性规则以及类型成员的访问规则。如privae、family(C#:protected)、family and assembly(C#:没有)、assembly(C#:internal)、family or assembly(C#:protected internal)、public

6. CTS规定所有类型最终必须从预定义的System.Object类型继承。

 

1.8 公共语言规范

1. MicroSoft定义了一个"公共语言规范"(Common Language Specification,CLS),它详细定义了一个最小的功能集。任何编译器生成的类型要想兼容于其他"符合CLS、面向CLS的语言"所生成的组件,就必须支持这个最小的功能集。

 
2. CLS定义了所有语言必须支持的一个最小的功能集。

 

1.9 与非托管代码的互操作性

1.CLR提供了一些机制,允许在应用程序中同时包含托管代码和非托管代码。具体说,CLR支持三种互操作情形。

    1)托管代码能调用DLL中俄非托管函数。托管代码采取一种名为P/Invoke(Platform Invoke)的机制来调用DLL中的包含的函数。

    2)托管代码可使用现有的COM组件(服务器)。

    3)非托管代码可使用托管类型(服务器)。

 

时间: 2024-11-03 20:29:01

[CLR via C#]1.6 Framework类库~1.9与非托管代码的互操作性的相关文章

.net framework 类库调试遇到问题

问题描述 大家有没有在调试状态下,进入framework的类库查看过源码?我按照这个BLOG的步骤配置.http://blogs.msdn.com/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx最后能够从SERVER下载pdb文件.但是VS弹出个对话框让我打开一个*.CS的文件.让我很是郁闷.在模块窗口可以看到Symbol已载入.不知道到底哪出了问题.大家帮忙看

Framework 类库的事件编程

编程 本页内容 EventHandler 委托 自定义的事件参数 参数化自定义事件 小结 本月的内容是专门介绍事件编程的系列专栏(共三期)的最后一期.在前两期专栏中,我已经介绍了如何定义和引发事件(请参见 Basic Instincts:Programming with Events Using .NET 和 Basic Instincts:Static Event Binding Using WithEvents).我还解释了如何使用动态和静态事件绑定来绑定事件处理程序.本月,我将通过一些在

我要实现的功能,.NET Framework 类库里面如果没有怎么办。

问题描述 比如说:我要实现的功能,.NETFramework类库里面如果没有怎么办. 解决方案 解决方案二:右击引用,自己添加,或者选择nuget解决方案三:调用systemapi如果这个还是不能.那.换电脑吧.肯定是系统问题.解决方案四:不明觉厉,我们做的功能大多都不是frame自身就能实现的,必须是通过组合,算法,流程之类的,所以如果没有,要么上nuget.org找有没有已经实现了的第三方dll,要么上github看有没有对应的开源项目,要么就是上技术论坛,群之类的求助,当然,你也可以自己实

搞懂.NET Framework 历史版本(2017年)

原文:搞懂.NET Framework 历史版本(2017年) 最近被.NET平台各种名词.以及各种版本弄得有些疑惑,开发和部署,对于开发平台版本选择是个基本问题,因此,花了些时间,学习汇总了有关.NET版本演进的历史. .NET简介 这个平台相信我们都知道,不过随着技术发展,现在的.NET平台也今非昔比. .NET平台类似Java平台,是微软于2000年推出的Windows操作系统的应用软件开发框架,发展至今形成巨大的技术栈,涉及多语言(支持C#.F#.VB.NET)多领域(Windows桌面

使用 SQL Server 2005中的 CLR 集成

本文描述了数据库应用程序开发人员和架构师如何利用 SQL Server 2005 中的 CLR 集成功能.本文对基于 CLR 的编程方式与 SQL Server 中支持的现有编程模型(如 TransacT-SQL 和扩展存储过程)进行了比较,并且强调了各自相对的优缺点.还提供了一组选择合适的编程替代方法的高级指导,以及一些示例和代码示例. 一.简介 Microsoft 通过宿主 Microsoft .NET Framework 2.0 公共语言运行库 (CLR),SQL Server 2005显

CLR笔记:1.CLR的执行模型

术语:CLR :Common Language Runtime 公共语言运行期,有多种不同编程语言使用的运行库 托管模块:Managed Module,一个标准的MS Window可移植执行体文件(32位PE32或64位PE32+) IL:Intermediate Language 中间语言,又叫托管代码(由CLR管理它的执行) 元数据:metadata,一系列特殊的数据表 程序集:Assembly,抽象的 JIT:just-in-time 即时编译,将IL编译成本地CPU指令(本地代码) FC

并发事件: 实现CLR异步编程模型

通常 I/O 操作的特点是速度慢.不可预见.当应用程序执行同步 I/O 操作时,基本上会放弃对正在 完成实际工作的设备的控制.例如,如果应用程序调用 StreamRead 方法从 FileStream 或 NetworkStream 读取某些字节,我们无法预计该方法需要多长时间才能返回.如果正在被读取的文件位于 本地硬盘上,那么 Read 操作可能会立即返回.如果存储文件的远程服务器脱机,则 Read 方法可能会等 待几分钟,然后超时并引发异常.在此期间,发出同步请求的线程会被占用.如果该线程是

《Visual C# 2010入门经典》一1.1 .NET Framework

1.1 .NET Framework Visual C# 2010入门经典 .NET Framework提供了一些工具和技术,让开发人员能够以独立于语言和平台的方式创建并运行下一代应用程序和Web服务.它提供了一个庞大的类库,这个类库支持众多常见的任务,简化了众多艰难的任务,让您能够将更多的时间用于解决手头的任务:以尽可能高效的方式满足业务需求. .NET Framework具有如下功能. 提供了一个运行环境,以简化软件开发过程,降低版本冲突的可能性. 确保代码的安全执行. 基于行业标准进行所有

[CLR via C#]12. 泛型

原文:[CLR via C#]12. 泛型 泛型(generic)是CLR和编程语言提供一种特殊机制,它支持另一种形式的代码重用,即"算法重用". 简单地说,开发人员先定义好一个算法,比如排序.搜索.交换等.但是定义算法的开发人员并不设定该算法要操作什么数据类型:该算法可广泛地应用于不同类型的对象.然后,另一个开发人员只要指定了算法要操作的具体数据类型,就可以使用这个现成的算法了. 泛型有两种表现形式:泛型类型和泛型方法. 泛型类型:大多数算法都封装在一个类型中,CLR允许创建泛型引用