在 C# 项目中使用 C++ API
Posted
技术标签:
【中文标题】在 C# 项目中使用 C++ API【英文标题】:Use C++ API in C# Project 【发布时间】:2014-05-29 04:17:27 【问题描述】:是否可以(一系列头文件和 CPP 文件)?
也许可以将这些文件编译成.obj
或.lib
文件并将它们包含在Visual C# 项目中? Crypto++
也做了类似的事情。
如果可能的话,这样做有什么缺点吗?
上下文和导入信息:
C++ API 称为 NWCreate,由 Autodesk Navisworks 开发 我正在使用 Microsoft Visual Studio C# 2010 我们在 C# 中拥有大量现有代码库,其中我们将在 navisworks 插件中执行的大部分操作已经用 C# 编码(来自我们制作的其他 Autodesk 项目)。因此,必须在 C++ 中重写所有这些操作是在重新发明***。【问题讨论】:
这是最好的解决方案。它对我很有效***.com/a/34541336/5732839 【参考方案1】:至少,您有两种方法可以从 .NET 调用 C/C++ API:
将 C/C++ API 编译为 dll,然后使用 PInvoke 从 .NET 调用它 使用托管 C++ (VC++),然后使用 IJW 封装原生代码,IJW 将生成可直接从 .NET 调用的托管代码【讨论】:
以上是关于在 C# 项目中使用 C++ API的主要内容,如果未能解决你的问题,请参考以下文章
C#项目中如何调用C#写的dll中的资源文件,如 xml文件