【问题标题】:writing C# API as a wrapper of C++ code?将 C# API 编写为 C++ 代码的包装器?
【发布时间】:2012-03-03 03:19:05
【问题描述】:

我是 Window 应用程序开发人员。我有一个 C++ 库,想为这个 C++ 库编写 C# API。我想我可以通过包装这个 C++ 库来编写 COM 库。但我不确定 COM 库是否与语言无关。我还听说 .NET 框架通过将我的库重新编译为中间代码来提供语言独立环境。但我不太确定如何在 .NET 中执行此操作。

由于我是这个领域的新手,请告诉我任何我可以看看的资源或技术。谢谢!

【问题讨论】:

  • 投票结束 - 关于 SO 的问题应该着眼于寻找特定问题的特定解决方案。您的问题不适合该格式。
  • 我想我已经尝试回答这个问题了......但他的问题似乎是如何从 C# 中使用 C++ 库?
  • @NadirMuzaffar - 如果没有预定义的上下文,该问题没有具体的答案。总的来说,这个问题表明缺乏研究。
  • @Unagi,如果没有你想要这样做的原因,就很难给你有用的信息——所以投票结束。搜索 PInvoke 并查看它是否是您实际要求的 bing.com/search?q=c%23+pinvoke
  • 嗨,只是好奇,你们为什么要投票结束?我只是想问是否有人碰巧知道任何允许我从 C# 使用 C++ 库的特定技术。我知道 COM 可能是一个潜在的候选人。但是在开始编码之前,我正在寻找替代解决方案。如果这引起任何混乱,我不介意结束我的问题。谢谢。

标签: c# c++ com clr


【解决方案1】:

COM 完全是为了语言独立。它的主要目的是将接口与实现分离。您很可能必须编写一个 COM 接口来包装 C++ 库,然后 C# 可以使用该库。

但是 COM 也是一个相当复杂的概念,需要理解并正确使用。根据库的大小,将 C++ 库重写为 C# 库,然后学习 COM,然后通过它公开 C++ 库,甚至可能更快。

【讨论】:

  • 我只是觉得 COM 可能很慢,因为这个库是一个实时新闻提要。您之前的回答很有用,因为我现在可以从 MSDN 站点找到一个潜在的解决方案:msdn.microsoft.com/en-us/magazine/cc164123.aspx。再次感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-15
  • 2012-06-13
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多