如何在我的 C# Visual Studio 项目中添加 VC++ DLL 作为引用?
Posted
技术标签:
【中文标题】如何在我的 C# Visual Studio 项目中添加 VC++ DLL 作为引用?【英文标题】:How can I add a VC++ DLL as a reference in my C# Visual Studio project? 【发布时间】:2009-03-20 11:07:12 【问题描述】:我想将 VC++ DLL 引用添加到我的 C# Visual Studio 项目中。但是当我尝试添加它时,我看到“它不是一个有效的程序集或 COM 组件”。
请建议我如何在 C# 项目中使用 VC++ DLL 作为参考。
【问题讨论】:
看起来像 ***.com/questions/315051/… 的副本 【参考方案1】:在 C# 中使用 C++ DLL 有两种选择:COM 互操作或 P/Invoke。 COM 互操作包括在 C++ DLL 中创建一个 COM 对象,然后将其添加为引用。此时,您可以像使用 C# 对象(大部分情况下)一样使用 COM 对象。
P/Invoke 允许您从 C# 调用导出的函数(想想从 C# 调用标准 Win32 API 函数)。这可能更容易设置,因为您需要做的就是导出一个函数,但这可能会导致您在 C++ DLL 中重构您的代码,因为这不是一种非常 OOP 的做事方式。
【讨论】:
【参考方案2】:您只能在 C# 中使用准备好使用的 C++ 组件,例如使用 C++/CLI 编写或编写为 COM 服务器。
如果你的组件是一个普通的 C++ dll,你需要编写一些包装代码,最好是 C++/Cli
【讨论】:
【参考方案3】:我不确定这是否解决..
运行:
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
【讨论】:
以上是关于如何在我的 C# Visual Studio 项目中添加 VC++ DLL 作为引用?的主要内容,如果未能解决你的问题,请参考以下文章
我的 C# win 表单应用程序在内部调用批处理脚本,如何在 Visual Studio 中导出时对最终用户隐藏它?
如何在 Visual Studio 2019 中为 C# WPF 切换 XAML 中的行注释
如何在 Visual Studio 中创建独立的 exe? [复制]