利用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++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |