如何在非托管C++中调用.NET的程序集
转载:http://social.msdn.microsoft.com/Forums/zh-CN/visualcpluszhchs/thread/92b73da2-32bc-4856-b296-81283cccb919/
方案一,使用C++/CLI封装
这个例子在All-In-One Code Framework (Library)中可以找到
分别是:
· CSClassLibrary ( C# 的类库)
· CppCLINETAssemblyWrapper(在C++/CLI中调用上面的C#类库,并封装)
· CppCallNETAssemblyWrapper(一个非托管的C++程序调用C++/CLI封装的C#的类库)
CppCallNETAssemblyWrapper通过CppCLINETAssemblyWrapper调用CSClassLibrary

第二中方案 CLR寄宿(Host CLR)
例子
· CSClassLibrary (C# 的类库)
· CppHostCLR (一个非托管的C++程序里面包含CLR寄宿来调用C#类库)
这个非托管的项目寄宿一个CLR,在那里实例化一个.NET 程序集CSClassLibrary.dll并且调用里面的方法。.NET Framework 1.x Hosting Interfaces 和 .NET Framework 2.0 Hosting Interfaces中的方法都会在里面出现。

方案三,把.NET程序集转换为COM服务,然后通过C++调用这个COM的接口,从而实现对其访问
例子
· CSDllCOMServer (一个C#的类库转换成COM服务)
· CppCOMClient (一个非托管的C++程序通过COM服务调用C#类库里面的方法)
非托管的C++程序通过调用COM服务来访问C#类库。

本文介绍三种从非托管C++调用.NET程序集的方法:使用C++/CLI封装、CLR寄宿和将.NET程序集转为COM服务。提供具体案例,帮助开发者理解和实践跨语言调用。

4万+

被折叠的 条评论
为什么被折叠?



