您的位置:首页 > 编程语言 > C语言/C++

Visual C++ 2005 系列课程学习笔记-2

2008-09-04 03:26 281 查看
Visual C++ 2005中实现C++与CLI的集成

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

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

1、源代码集成

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

内部机理:IJW(it just works)

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

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

2、对象集成

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

3、不同语言互操作

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

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

托管类中存放本地对象、本地类中存放托管对象、托管堆中存放本地对象、本地堆中存放托管对象
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: