如何在C#中继承C ++ / CLI接口?

时间:2010-07-11 11:59:31

标签: c# .net interface assemblies c++-cli

我在C ++ / CLI中声明了一个接口,并使其成为一个程序集(DLL)。我希望该接口由C#app实现。我添加了引用,但是我的C#程序集没有检测到我的C ++ / CLI界面,并说“找不到:你缺少一些程序集引用。”

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:1)

确保您的dll支持CLR。 (Visual Studio中“配置属性”中的“常规”选项卡)。

答案 1 :(得分:0)

确保在C ++ / CLI程序集中声明interface class public。我推荐免费版的Red Gate .NET Reflector用于查看已编译程序集中类型的可见性。

答案 2 :(得分:0)

接口是否在C ++ / CLI程序集中的命名空间中定义?如果是这样,你把'using [namespace]'放在C#文件的顶部?

答案 3 :(得分:0)

知道这是一个老问题,但我遇到了同样的问题。 另外,你的c ++ / cli需要提供一些源代码(cpp)(实际上几乎是空的):

IXYprovider.h:

namespace Interfaces { public interface class IXYprovider { ... } }

IXYProvider.cpp:

#include "IXYprovider.h" namespace Interfaces { }

这使C#可见。