【问题标题】:What tool can I use to extract complex interfaces from VB6 classes? [closed]我可以使用什么工具从 VB6 类中提取复杂的接口? [关闭]
【发布时间】:2013-01-31 18:40:02
【问题描述】:

我有一组相对复杂的 VB6 表单和类,需要转换为 VB.NET。这些类跨 COM 边界很复杂,提供接口和事件,以及接收来自其他 COM 类的事件。

没有一个类可以跨 COM 边界编组变体或其他复杂数据类型,所以我不需要尝试对接口做任何真正困难的事情。

是否有任何可用的免费或商业工具可以自动执行此操作,只要提供一份 VS2010 副本和一个装满公用事业资金的钱包,而不是咨询服务?

【问题讨论】:

  • 我真的不知道它是否合适,我使用 ReSharper for C# 并且能够提取界面(以及许多其他任务)。 VB.NET 有一个版本,希望对您有所帮助。 jetbrains.com/resharper
  • 不是真的;据我所知,ReSharper 提取的是 VB.NET 接口,而不是 VB6。

标签: vb.net vb6 vb6-migration


【解决方案1】:

请在此处查看我曾经问过的类似问题:VB6 code upgrade。看看 Olivier Jacot-Descombes 的回答,他谈到了 Visual Studio 中可用的工具。

我建议重写代码,因为根据我的经验,这是值得的时间。

【讨论】:

  • 我打算重写代码。只需要正确定义接口和接收器。
【解决方案2】:

我有类似的任务要做,对我来说最简单的方法是使用 Visual Studio 2005 中的向导将 VB6 代码升级到 .Net。然后将项目升级到 Visual Studio 2010,然后使用重构工具提取接口。

无需昂贵的第三方工具,尽管您仍需手动检查所有接口以确保没有遗漏任何内容。

【讨论】:

    【解决方案3】:

    把钱花在VB Migration PartnerArtinsoft VB Upgrade Companion 上,让工具转换代码以及提取接口。

    【讨论】:

    • artinsoft 工具是否允许我只提取我需要的 frm、cls 和 mod 文件,而将其余文件保留在原位?
    【解决方案4】:

    您显然需要解析 VB6 代码,并提取名称和类型定义。周围没有很多强大的 VB6 解析器。

    我们有其中之一,建立在我们的再造工具基础 DMS 之上。您可以将它们作为产品获取,并根据您的目的对其进行配置。 VB6 前端提供对所有详细信息的完整 AST 的解析; DMS 提供了用于构建符号表、进行类型分析和支持数据流分析的附加机制,如果您想知道哪些接口使用哪些接口,这可能是您需要的。这不是一件容易的事,因为这些机器相当复杂(因为 VB6 等真正的编程语言很复杂);大多数人对服务更感兴趣,只是为了实现迁移,但情况各不相同。见VB6 migration tools。 (我是 DMS 背后的 CTO)。

    您总是可以编写一个 Perl 脚本来尝试提取这些信息。这可能会在 70% 的情况下正确处理;你的精力将花在试图找出哪个 70% 是正确的,如何修补其他 30%。如果您的系统非常小,这可能会更容易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-22
      • 2013-06-18
      • 2012-08-23
      • 2019-10-24
      • 1970-01-01
      • 2022-01-20
      相关资源
      最近更新 更多