我想在我的C#Visual Studio项目中添加VC ++ DLL引用。但是当我尝试添加它时,我看到,“它不是有效的程序集或COM组件”。
请建议我如何使用VC ++ DLL作为C#项目的参考。
答案 0 :(得分:1)
只有在C#中准备好使用C ++组件时才能使用它们,例如通过用C ++ / CLI编写或者编写为COM服务器。
如果你的组件是普通的C ++ dll,你需要编写一些包装代码,最好的是C ++ / Cli
答案 1 :(得分:1)
使用C#的C ++ DLL有两种选择:COM interop或P / Invoke。 COM Interop涉及在C ++ DLL中创建COM对象,然后将其添加为引用。此时,您可以像使用C#对象一样使用COM对象(大部分时间)。
P / Invoke允许您从C#调用导出的函数(想想从C#调用标准的Win32 API函数)。这可能更容易设置,因为您需要做的就是导出一个函数,但这可能会导致您重构C ++ DLL中的代码,因为它不是一种非常OOP的处理方式。
答案 2 :(得分:0)
我不确定这是否解决..
运行:
tlbimp /out:MyOldCom.dll MyNewAssembly.tlb
然后像使用任何其他组件一样使用它。
请参阅
http://msdn.microsoft.com/en-us/library/aa302324.aspx
http://msdn.microsoft.com/en-us/magazine/cc301501.aspx
IE)
一种方法是将DLL打包为COM类,另一种方法是使用DllImport