我刚刚使用CLR编译了一个本机C ++ DLL,令人惊讶的是我根本就没有错误。在我的C#项目中引用该项目之后,我注意到没有任何暴露我可以使用的东西。我认为会发生这种情况。所以我的问题是如何从我的c#项目中访问这些?就像我说的那样,项目用CLR编译得很好,我可以引用它,我就是无法访问它。
我是否必须通过使用符合CLR的代码包装它们来公开这些功能?或者有没有办法可以轻松更改某些内容并能够在.net中访问此DLL?
答案 0 :(得分:0)
您的情况有多种解决方案:
1)没有面向对象的API =>你可以简单地 P / Invoke ( DllImport )
2)面向对象的API,几乎没有实体=>一个简单的 C ++ / CLI包装器
3)复杂的OO API =>的 SWIG 强>4)如果你需要与整个世界完全互操作(包括你不知道的技术)=>的 COM 强>