我们可以在.net 3.5 prioject中使用Vb6生成的dll吗?
我需要在 .Net 代码中使用 VB6 生成的 dll,但我很困惑,因为两者的编译是不同的。我不确定.Net运行时是否拒绝使用VB6 dll。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我需要在 .Net 代码中使用 VB6 生成的 dll,但我很困惑,因为两者的编译是不同的。我不确定.Net运行时是否拒绝使用VB6 dll。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
您可以通过在 .NET 项目中的“添加引用”对话框的 COM 选项卡上添加对组件的引用来引用从 VB6 生成的 ActiveX (COM) DLL(并使用 regsvr32 注册)。 Visual Studio 将为您生成所需的互操作层。
You can reference an ActiveX (COM) DLL produced from VB6 (and registered using
regsvr32
) by adding a reference to the the component on the COM tab of the Add Reference dialog in your .NET project. Visual Studio will generate the required interop layer for you.VB6 dll 不是 .NET 程序集,并且本质上有很大不同(非托管代码与托管代码),因此您不能直接使用它们。您需要 PInvoke 或 PInvoke 或 COM 互操作。
VB6 dlls are not .NET assemblies and are very different in nature (unmanaged vs managed code) so you cannot use them directly. You need PInvoke or COM interop.
VB6 编译器生成的 dll 与 .NET 编译器生成的程序集(也称为 dll)非常不同。
如果没有互操作层,您将无法直接调用它们。
The dlls that the VB6 compiler generates are very different from the assemblies (also confusingly called dll's) that a .NET compiler generates.
You will not be able to call them directly without an interop layer.