将我的 C++CLI 程序集中返回类型为列表的方法公开到我的 C# 项目

发布于 2024-08-19 10:56:20 字数 440 浏览 2 评论 0原文

我有一个 C++/CLI 项目,它包装了本机 C++ 应用程序,我在 C# 项目中使用它。我在 C++/CLI 类中添加了一些 void 方法,这些方法正确地暴露给我的 C# 项目。智能感知在 C# 中显示得很好,我可以与这些方法进行交互。但是,当我将结构体的返回类型放入 C++/CLI 中时,该方法在 C# 中不显示为可用。有什么想法吗?

C++/CLI

IPFILTERINFOLIST GetBlockList()
{
   return _packetFilter->GetBlockList();
}

...调用...

C++ Native

IPFILTERINFOLIST  PacketFilter::GetBlockList()
{
   return m_lstFilters;
}

I have a C++/CLI project that wraps a native C++ application, which I use in my C# project. I added a few void methods in my C++/CLI class which expose correctly to my C# project. The intellisense shows fine in C# and I can interact with the methods. However, when I put a return type of a struct in C++/CLI, the method doesn't show as availible in C#. Any ideas?

C++/CLI

IPFILTERINFOLIST GetBlockList()
{
   return _packetFilter->GetBlockList();
}

...which calls...

C++ Native

IPFILTERINFOLIST  PacketFilter::GetBlockList()
{
   return m_lstFilters;
}

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

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

发布评论

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

评论(1

书间行客 2024-08-26 10:56:20

您应该创建 IPFILERTINFO 结构的“托管版本”并将非托管数据复制到其中。然后创建一个普通的 .NET List<>并将所有这些托管对象添加到其中。

You should create a "managed version" of the IPFILERTINFO struct and copy your unmanaged data into it. Then you create a normal .NET List<> and add all those managed objects to it.

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