首页 > 学院 > 开发设计 > 正文

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

2019-11-17 03:23:48
字体:
来源:转载
供稿:网友

[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)、public6. 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)非托管代码可使用托管类型(服务器)。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表