我可以用什么工具从VB6类中提取复杂的接口?

时间:2013-01-31 18:40:02

标签: vb.net vb6 vb6-migration

我有一组相对复杂的VB6表单和类需要转换为VB.NET。这些类在COM边界之间是复杂的,提供接口和事件,以及从其他COM类中下沉事件。

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

是否有任何可用的工具,免费或商业,可以自动化,给出VS2010的副本和钱包,公用事业,但不是咨询服务?

4 个答案:

答案 0 :(得分:1)

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

我建议根据我的经验重写代码,花费时间。

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

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

您始终可以编写Perl脚本来尝试提取此信息。这可能会在70%的时间内正确运行;你的能量将花费在试图找出哪个70%是正确的,如何修补其他30%。如果您的系统非常小,这可能会更容易。

答案 3 :(得分:0)

将钱花在VB Migration PartnerArtinsoft VB Upgrade Companion上,让该工具转换代码并提取界面。