2011-06-12 48 views

回答

2

使用C++/CLI,在.NET平台上托管代码中使用的C++方言。该语言主要用于诸如您的应用程序中。

看到这个article(标题有点夸张,但内容不错)。其他搜索C++代码的包装应该会给你更多的例子。

正如Barry指出的那样,使用平台调用(P/Invoke)调用可让您从DLL调用本机代码。

2

如果您想手动打包库,那么使用C++/CLI来创建API或P/Invoke的托管包装以直接从C#调用本机代码是非常简单的。

如果你想自动创建一个包装,我相信SWIG项目已经作为C/C++ => C#module。 SWIG模块在引擎盖下使用了P/Invoke(作者声称,它也适用于Mono)。它似乎为您处理P/Invoke包装的许多细节(.NetMono)。我没有使用它,但它似乎是你在找什么。

+0

+1 SWiG是“打包”现有类以供其他语言使用的方式。 – 2011-06-13 00:56:09

1

你可以做的一件事是围绕你的C++类库构建一个COM包装器。一旦C++类被打包为COM对象,您就可以从C#代码中使用它们。

看到http://msdn.microsoft.com/en-us/library/aa645736(v=vs.71).aspx(“COM互操作第1部分:C#客户端教程”)

如果您需要关于如何包装C++库到COM信息,我可以建议阅读微软出版社的优秀图书“内部COM” 。

相关问题