【发布时间】:2011-05-17 16:14:41
【问题描述】:
我想从 c# (visual studio 2008) 调用一个用 Visual Basic 6.0 编写的方法。可能吗?我该怎么做?
【问题讨论】:
标签: c# dll vb6 methods com-interop
我想从 c# (visual studio 2008) 调用一个用 Visual Basic 6.0 编写的方法。可能吗?我该怎么做?
【问题讨论】:
标签: c# dll vb6 methods com-interop
最简单的方法是将 VB6 代码编译为 ActiveX DLL。 然后,您可以在 .net 项目中引用该 DLL。 (Visual Studio 可以正确引用 ActiveX DLL。)
【讨论】:
将您的 VB6 DLL 编译为 activex dll
注册使用 -> regsvr32 "Full Name And Path of newcompiled vb6 dll".(使用运行对话框或命令提示符注册)
在 .net 中添加引用 - 选择 com 选项卡并搜索这个新注册的 dll
现在您可以使用此 dll。
注意:
每当您对 vb6 代码进行任何更改时,您都必须再次执行上述步骤。
要注销 vb6 dll,请使用 regsvr32 "Name and path" /u
欢迎来到(dll)地狱
【讨论】:
是的。有可能的。调用它就像调用用 Visual Basic 编写的方法一样。您需要对程序集的引用,然后您只需使用正确的命名空间调用它。
【讨论】:
当且仅当 VB6 代码被编译为 COM 服务器时才有可能。
【讨论】:
.NET 可以像使用任何 COM DLL 一样使用您的 VB6 DLL。
只需单击“添加引用”,如果您的 DLL 已注册,则选择“COM”选项卡,或者只需单击“浏览”选项卡以直接选择文件。
如果与 COM 兼容,Visual Studio 将自动创建一个 COM 互操作程序集,该程序集将充当 VB6 DLL 的 .NET 包装器。
您必须将 VB6 dll 和 Interop 程序集与您的程序一起部署。
【讨论】: