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

来源:互联网 时间:1970-01-01

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

 




相关阅读:
Top