如何在非托管C++中调用.NET的程序集

如何在非托管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#类库。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值