我们有一组用C ++ / CLI包装的Native C ++业务规则,然后是C#层,所以我们可以通过DCOM公开它。
Native C ++业务规则位于DLL中,可以在COM可见DLL中的C ++ / CLI中轻松调用。然后,我们将此DLL添加为对C#项目的引用。
C#层有许多派生自ServicedComponent的类,我们应用regsvcs将其注册为DCOM服务器。
但是,需要C ++ / CLI层与C#层进行通信。为此,我考虑使用C#样式界面。 C#层将从接口派生并传递给C ++ / CLI层,然后C ++ / CLI层可以在其上调用方法以在C#层中发生某些事情。为了可见性,需要在C ++ / CLI层中声明此接口。这是我的问题,我似乎无法实现这一点。
有没有办法在C ++ / CLI中声明C#样式接口,然后在C#中使用它?
答案 0 :(得分:1)
有(https://msdn.microsoft.com/en-us/library/737cydt1.aspx):
#pragma managed
using namespace System;
public interface class MyInterface
{
void MyFunction();
}
用于C#:
public class MyClass : MyInterface
{
public void MyFunction() { }
}