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

发布于 2024-09-09 03:46:30 字数 136 浏览 5 评论 0原文

我已经在 C++/CLI 中声明了一个接口并将其设为程序集(DLL)。我希望该接口由 C# 应用程序实现。我已添加引用,但我的 C# 程序集未检测到我的 C++/CLI 接口,并显示“无法找到:您缺少一些程序集引用。”

我该如何解决这个问题?

I have declared an interface in C++/CLI and made it an assembly(DLL). I want that interface to be implement by a C# app. I have added the reference but my C# assembly does not detecting my C++/CLI interface and says "Could not find: You are missing some assembly refernce."

How can I resolve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

甜中书 2024-09-16 03:46:30

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

Make sure that your dll support CLR. (Tab General in Configuration Properties in Visual Studio).

剪不断理还乱 2024-09-16 03:46:30

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

IXYprovider.h:

namespace Interfaces
{
公共接口类IXYprovider
{
...
}
}

IXYProvider.cpp:

#include "IXYprovider.h"
命名空间接口
{

这使得它对 C# 可见

Knowing this is an old question, but I had the same issue.
Additionally, your c++/cli needs to provide some source (cpp) code (which is actually nearly empty):

IXYprovider.h:

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

IXYProvider.cpp:

#include "IXYprovider.h"
namespace Interfaces
{
}

That makes it visible to C#.

梦情居士 2024-09-16 03:46:30

确保在 C++/CLI 程序集中将接口类声明为public。我推荐使用 Red Gate .NET Reflector 的免费版本来查看已编译程序集中类型的可见性。

Make sure that the interface class is declared public in the C++/CLI assembly. I recommend the free version of Red Gate .NET Reflector for viewing visibility of types in a compiled assembly.

想挽留 2024-09-16 03:46:30

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

Is the interface defined within a namespace within the C++/CLI assembly? If so have you put 'using [namespace]' at the top of your C# file?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文