如何在C#Visual Studio项目中添加VC ++ DLL作为参考?

我想在我的C#Visual Studio项目中添加VC ++ DLL引用。 但是当我尝试添加它时,我看到“它不是有效的程序集或COM组件”。

请建议如何使用VC ++ DLL作为C#项目的参考。

使用C#的C ++ DLL有两种选择:COM interop或P / Invoke。 COM Interop涉及在C ++ DLL中创建COM对象,然后将其添加为引用。 此时,您可以像使用C#对象一样使用COM对象(大多数情况下)。

P / Invoke允许您从C#调用导出的函数(想想从C#调用标准的Win32 API函数)。 这可能更容易设置,因为您需要做的就是导出一个函数,但这可能会导致您重构C ++ DLL中的代码,因为它不是一种非常OOP的处理方式。

只有在准备好使用C#组件时才能使用它们,例如通过用C ++ / CLI编写或者编写为COM服务器。

如果你的组件是普通的C ++ DLL,你需要编写一些包装代码,最好的是C ++ / Cli

我不确定这是否解决..

跑:

tlbimp /out:MyOldCom.dll MyNewAssembly.tlb

然后像使用任何其他组件一样使用它。

请参考

http://msdn.microsoft.com/en-us/library/aa302324.aspx

http://msdn.microsoft.com/en-us/magazine/cc301501.aspx

即)

一种方法是将DLL打包为COM类,另一种方法是使用DllImport