遗留代码visual basic到c#

本文关键字:basic visual 代码 | 更新日期: 2023-09-27 18:01:15

我正在构建一个c#应用程序,该应用程序旨在复制和增强多年前开发的VB6应用程序的功能。我的问题是,旧应用程序中的一个模块会做一些非常复杂的事情,试图从规格开始复制这一点对我来说是一个很大的痛苦。即使这听起来是最好的主意。

我的问题是:有没有一种方法可以保留旧的VB模块并将其集成到c#应用程序中,这样我就不必重写所有内容了?

谢谢!

遗留代码visual basic到c#

是。您可以将模块转换为COM对象,以及。Net将愉快地调用COM对象。根据您现在拥有的内容,您可能需要找到Visual Studio 6的副本才能实现这一点(如果您有订阅,它仍然可以在MSDN上获得(。为了给您更准确的说明,我们需要查看更多您的代码。

Visual Studio有一个向导,允许您将VB6转换为VB.NET,然后您可以在C#项目中引用并使用它。但是,此迁移工具不再随Visual Studio 2010一起提供(它是在旧版本中提供的(尽管通常需要大量的手动润色工作,但您通常最好手动重写它,这可能会产生更高质量的代码。我给你的建议是重写代码,你可以进行润色,确保它正确工作,而不必走COM/Interop路线,但也不一定要回避这个选项。如果重写所有代码真的是一个问题,那么interop就是一个解决方案。

您可以使用COM或将模块导出为DLL。这里有一些关于VB6和COM.

的信息

理论上是的,将其转换为com模块,并从c#代码中调用它。这是否会更容易,我不确定。

问题是这个问题不会消失,如果模块或接口需要更改,那么就必须有人来做。所以很实用,是的,但要仔细考虑你在做什么。

您可以将现有的vb代码迁移到vb.net,并将其编译为单独的程序集,然后将其添加到C#应用程序中。

VS2010(可能是2008(不能在同一解决方案中同时支持VB和C#项目吗?如果我没有错的话,他们可以。因此,您实际上可以将VB6代码转换为VB.Net,并在您的解决方案中使用C#的东西来实现该项目。