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引用类型对象。
尚不能支持的集成:(托管堆、本地堆、垃圾收集器)
托管类中存放本地对象、本地类中存放托管对象、托管堆中存放本地对象、本地堆中存放托管对象
我思故我在
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步