Visual C++ 2005中实现C++CLI的集成

Visual C++ 2005基于CLI虚拟机平台,而C++基于本地机平台。因此,Visual C++ 2005C++两者存储对象的空间位置不同,Visual C++ 2005存储在托管堆中,而C++存储在本地堆中。

Visual C++ 2005支持本地编程和托管编程的无缝集成,其本质是实现了对象模型的集成。

1、源代码集成

源代码集成即在Visual C++ 2005中利用cl /clr命令直接对C++源代码进行编译。

内部机理:IJWit just works

1)绝大多数C++代码编译后将得到托管代码,即IL代码。部分不能编译为IL代码的采用平台调用服务PInvoke来实现。

2)只进行代码的托管,而不进行数据的托管(C++本地堆内的数据不被托管)。

2、对象集成

利用CLI虚拟机平台将C++指针或对象实例封装到Visual C++ 2005的一个引用类型对象中。

3、不同语言互操作

其它语言来调用封装了C++指针的Visual C++ 2005引用类型对象。

尚不能支持的集成:(托管堆、本地堆、垃圾收集器)

托管类中存放本地对象、本地类中存放托管对象、托管堆中存放本地对象、本地堆中存放托管对象

posted on 2008-09-04 03:26  开(^_^)心  阅读(274)  评论(0编辑  收藏  举报