自动将c ++ dll自动换行到c#

我想在ac#project中使用c ++库。 是否有任何包装工具可以自动导入所有类?

SWIG可以帮助创建一个由两部分组成的包装器,一个是C ++侧面,另一个是C#侧面。
虽然设置正确的生成文件需要一些工作。

需要更多手动编码的替代方案是C ++ / CLI。

对于纯c apis,我更喜欢p / invoke而不是其中任何一个。 有一个程序可以自动转换c标头。 如果我没记错的话,它被称为“P / Invoke Interop Assistant”或“Interop Signature Toolkit”。

还有mono / cxxi ,看起来很酷。

在.Net中使用本机.dll的过程称为P / Invoke。 请查看http://pinvoke.net/以获取一些示例。

请注意,您必须将构建目标与.dll的版本匹配。 因此,对于x86 .dll,您需要将项目锁定到x86,与x64相同。

注意2,您只需要锁定正在执行的项目(.EXE),而不是从.EXE加载的任何其他项目。 如果设置为ANY,.Net将自动将.Net .dll与CPU目标类型匹配。

来自http://social.msdn.microsoft.com/forums/en-US/clr/thread/c957959e-0f0c-422e-a5be-4ccfdd12e63d :您可以使用“dumpbin / exports”或dependency walker(depends.exe)来看看导出的符号。 它们都包含在Visual Studio中。

如果这是非托管代码,那么您可以使用P / Invoke 。 另一种可能性是使用C ++ / CLI扩展将代码编译为可以直接使用的托管程序集。