当前位置:  开发笔记 > 编程语言 > 正文

如何将VB6代码转换为C#?

如何解决《如何将VB6代码转换为C#?》经验,为你挑选了5个好方法。

有谁知道从VB6代码转换为C#的方法?

有没有可以为我做这个的工具?



1> theraccoonbe..:

VisualStudio提供(或至少提供)一个向导来执行从VB6到VB.NET的转换(然后可以通过一些工作将其转换为C#,可能由#development的VB.NET < - > C#转换器帮助),但是当我最后一次使用它时,对于任何非平凡的事情都需要做大量的手工工作,所以我怀疑如果这是一个大型和/或重要的应用程序,你可能会更好地手写重写或移植.


该产品由ArtinSoft(现为Mobilize.Net)创建,并演变为VBUC.

2> 小智..:

它可能会有点厚颜无耻,但你的大脑可能是最好的工具.值得重写.

也许你不需要移植它.VB6可以变成COM组件吗?通往COM的港口,来自C#的电话,及时为Judy法官回家.


"[...] Judy法官及时回家"无价之宝!

3> Kris Erickso..:

作为一个多次这样做过的人,这不是一个简单的过程.您可以按照本答案中的说明使用VB6到VB.Net工具,然后使用Reflector或SharpDevelop转换为C#.随着SharpDevelop的转换,一些警告.它搞砸了所有数组引用并认为它们是函数调用,并且所有逻辑运算符都转换为按位逻辑运算符(并且变为¬ &&).使用Reflector,你会丢失很多东西.此外,Visual Studio转换器在许多大型项目上失败,只是挂起并且永远不会完成.

一旦将代码转换为C#,就必须开始真正的工作.转换最多只能获得50%的转换,你必须修复大量的东西(你会看到你的代码乱丢TODO),重构大量的东西,最后你留下了C#,这是一个你的VB6的代表 - 除非你有非常好的VB6代码,不是你真正想要的地方.你的所有代码都充斥着VB助手,而不是使用正确的DotNet函数(所有字符串函数都是辅助函数而不是类对象,例如0.如果你使用了Variants,那么所有这些都必须被重写.如果你使用了很多API调用,他们往往需要重写.

最终你将获得一个基础,但转换一个大型项目(20-30个表格,30个类,30个模块)可能需要几个月的时间.但是,从头开始重写可能需要两倍的时间,而且会丢失所有业务逻辑.所以,它可以完成(我已经完成了3或4个大型项目),但没有灵丹妙药,没有银弹,而且任何工具都说它会独自为你做这件事.



4> sebagomez..:

使用新版本的Visual Studio打开项目,将代码转换为VB.Net,然后下载.Net Reflector以帮助您进行C#转换.

祝好运!


这个答案具有误导性,因为VB6的转换充满了行为的细微和粗略的变化.不要这样做.最好有一个有条不紊的转换计划,将.NET视为一个单独的平台,然后依赖任何转换工具.

5> Esteban Bren..:

Artinsoft(现在更名为Mobilize.Net)就是这样做的,特别是Visual Basic Upgrade Companion.

然而,即使在使用VBUC之后,仍然需要手动迁移/校对系统的某些部分.但它通常是原始问题的一小部分.由于过去迁移的经验,一些迁移​​问题已得到解决.

Artinsoft与构建Visual Studio附带的向导的公司是同一家公司,在theraccoonbear的帖子中提到过.但是,如果我没有错误,向导只会将VB6迁移到VB.Net.

完全披露:我为Artinsoft工作

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有