互操作概述
公共语言运行库(CLR)提供了一系列能够使托管代码和非托管代码进行交互操作的解决方案。其中主要包含三类互操作技术。
- 平台调用技术(P/Invoke)。主要用于处理在托管代码中调用C库函数以及Win32API函数等非托管函数。
- C++Interop。适用于在托管代码与C++类库、核心算法库之间进行高效灵活的互操作过程。
- COM Interop。用于处理托管代码与COM之间的交互过程。
由于不同的非托管对象,其设计和运行机制等存在很多差异。因此,托管代码与这些非托管对象进行互操作时,在数据类型处理、错误处理机制、创建及销毁对象的规则以及互操作方法上,都需要根据不同的情况,分别进行不同的处理,从而导致互操作技术复杂多变且不易掌握。
(END)