我有一组相对复杂的需要转换为VB.NET的VB6窗体和类,这些类跨越COM边界很复杂,提供接口和事件,并从其他COM类接收事件。
这些类都没有跨COM边界封送变量或其他复杂数据类型,因此我不需要尝试对接口执行任何真正困难的操作。
有没有免费的或商业的工具,可以自动化,只要有一份VS2010副本和一个装满钱的钱包用于公用事业,但没有咨询服务?
发布于 2013-02-01 02:47:23
请看我曾经问过的一个类似的问题:VB6 code upgrade。看看Olivier Jacot-Descombes的回答,他谈到了Visual Studio中可用的工具。
我建议重写代码,因为根据我的经验,重写代码是值得的。
发布于 2013-02-04 23:24:10
我有一个类似的任务要做,对我来说,最简单的方法是使用Visual Studio2005中的向导将VB6代码升级到.Net。然后将项目升级到Visual Studio2010,然后使用重构工具提取接口。
不需要昂贵的第三方工具,尽管您仍然需要手动检查所有接口,以确保没有遗漏任何东西。
发布于 2013-02-01 05:02:33
显然,您需要解析VB6代码,并提取名称和类型定义。目前还没有很多健壮的VB6解析器。
我们有一个,建立在我们的再工程工具基础之上,DMS。您可以将它们作为产品获取,并根据您的目的对其进行配置。VB6前端提供了对所有详细信息的完整use的解析;DMS提供了额外的机制,可用于构建符号表、执行类型分析和支持数据流分析,如果您想知道哪些接口使用哪些接口,则可能需要使用这些机制。这并不是一件容易的事情,因为这些机器相当复杂(由于VB6等真正的编程语言是复杂的);大多数人对服务更感兴趣,只是为了实现迁移,但情况各不相同。参见VB6 migration tools。(我是DMS背后的CTO )。
您可以随时编写一个Perl脚本来尝试提取此信息。这可能会有70%的时间是正确的;你的精力将花在试图找出哪70%是正确的,如何修补其他30%。如果您的系统非常小,这可能会更容易。
https://stackoverflow.com/questions/14632813
复制相似问题