当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

利用IDispatch::Invoke函数在C++中调用C#实现的托管类库办法[VC/C++编程]

赞助商链接



  本文“利用IDispatch::Invoke函数在C++中调用C#实现的托管类库办法[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

CLR Interop简而言之是让非托管代码与托管代码之间可以彼此调用的技术.这项技术可以使开辟人员重用已有的托管或非托管组建,并按照自己的需求,衡量托管代码的简易性与非托管代码的机动性,挑选合适自己实际情形的编程语言,而不用过量考虑重用的组件是用哪类语言开辟的.Interop中文的意思是互通性,既然是互通,代码的调用就有两种差别的方向.本文所要报告的是利用COM Interop技术在非托管代码方若何调用托管代码.

1. 成立托管服务器

首先让我们在Visual Studio 2008成立一个C#的Class Library(类库)项目,取名为MyManagedServer,在该项目中,我们要声明并实现一个接口.

接口声明代码以下:

为了阐明简单,该接口中只有一个办法,用于打印一些信息.此中的ComVisible属性至关重要,当它的值为true时,该接口才对COM可见.

view plaincopy to clipboardprint?

usingSystem;
usingSystem.Runtime.InteropServices;
namespaceMyManagedServer
{
  [ComVisible(true),
  Guid("79EDDA1C-F243-47C5-8954-5DEF01FA3D44"),
  InterfaceType(ComInterfaceType.InterfaceIsDual)]
  publicinterfaceIManagedFooClass
  {
    [PreserveSig,DispId(1)]
    voidPrintFoo();
  }
}
using System;
using System.Runtime.InteropServices;
namespace MyManagedServer
{
  [ComVisible(true),
   Guid("79EDDA1C-F243-47C5-8954-5DEF01FA3D44"),
   InterfaceType(ComInterfaceType.InterfaceIsDual)]
  public interface IManagedFooClass
  {
    [PreserveSig, DispId(1)]
    void PrintFoo();
  }
}


  以上是“利用IDispatch::Invoke函数在C++中调用C#实现的托管类库办法[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 利用IDispatch::Invoke函数在C++中调用C#实现的托管类库办法
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .