1

是否可以在 C# 项目中使用 C++ API(一系列头文件和 CPP 文件)?

也许可以将这些文件编译成.obj.lib文件并将它们包含在 Visual C# 项目中?类似的事情已经完成Crypto++

如果可能的话,这样做有什么缺点吗?

上下文和导入信息:

  • C++ API 称为 NWCreate,由 Autodesk Navisworks 开发
  • 我正在使用 Microsoft Visual Studio C# 2010
  • 我们在 C# 中拥有一个庞大的现有代码库,其中我们将在 navisworks 插件中执行的大部分操作已经用 C# 编码(来自我们制作的其他 Autodesk 项目)。因此,必须在 C++ 中重写所有这些操作在很大程度上是在重新发明轮子。
4

1 回答 1

1

至少,您有 2 种方法可以从 .NET 调用 C/C++ API:

  • 将 C/C++ API 编译为 dll,然后使用 PInvoke 从 .NET 调用它
  • 使用 Managed C++ (VC++),然后使用 IJW 封装原生代码,IJW 将生成可直接从 .NET 调用的托管代码
于 2014-05-29T04:30:04.427 回答