构建本机c ++以用作.net库

我有c ++的function源代码,这对我很有吸引力。

为了从.net应用程序引用它或将此代码构建为.net程序集(最好是c#),需要做些什么样的工作/工作?

这是我第一次尝试移植代码,所以请一步一步地为我分解你的答案。

有几种方法可以做到这一点。

  1. 的PInvoke
  2. 围绕C ++本机代码创建C ++ / CLI包装器(使用C ++本机代码创建静态库),可以在.net应用程序中轻松使用C ++ / CLI生成的程序集。
  3. COM,即使用互操作(在所有选项中很难)

在我的建议中,最简单的方法是使用选项2,但您需要注意正确的编组。

解决方案A:

  1. 如果您有源代码,则将CPP程序编译为DLL文件。
  2. 使用P / Invoke

解决方案B(如果您想要的function在静态库中):

  1. 创建一个存根函数调用程序并将其编译为DLL
  2. 与解决方案A.2相同