Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将.bas文件移植到vb.net_Vb.net_Vb6 Migration - Fatal编程技术网

将.bas文件移植到vb.net

将.bas文件移植到vb.net,vb.net,vb6-migration,Vb.net,Vb6 Migration,我正在处理一些遗留的VB5/VB6代码,需要将“.bas”文件转换为vb.net 我找到了几个选择 将.bas文件编译成com dll,然后在我的项目中引用并使用它。(为此,我想我需要vb5或vb6,而我没有这些可供使用) 将文件内容复制并粘贴到vb.net中的新模块中,然后逐个尝试解决错误 .bas文件的内容引用特定的dll。 .bas文件主要包含常量、类型、子类和函数的声明 在vb.net中,最优雅的重做方式是什么。它是否像选项2那样简单 编辑 我使用VS2008 express并通过升级向

我正在处理一些遗留的VB5/VB6代码,需要将“.bas”文件转换为vb.net

我找到了几个选择

  • 将.bas文件编译成com dll,然后在我的项目中引用并使用它。(为此,我想我需要vb5或vb6,而我没有这些可供使用)

  • 将文件内容复制并粘贴到vb.net中的新模块中,然后逐个尝试解决错误

  • .bas文件的内容引用特定的dll。 .bas文件主要包含常量、类型、子类和函数的声明

    在vb.net中,最优雅的重做方式是什么。它是否像选项2那样简单

    编辑

    我使用VS2008 express并通过升级向导运行代码,它完成了必要的转换。然后将.bas文件转换为.vb。我接受了这个文件,并决定重写代码的其他部分,包括重新编写转换后的.vb文件

    与此相关的其他问题有。

    Microsoft提供了一个如何操作的应用程序,其中包括一个尝试将VB6代码转换为.NET的应用程序

    这包括您的两种解决方案,但转换器有助于解决方案2

    这取决于VB6代码的复杂程度及其功能


    但是,如果您必须支持并更改VB6代码,那么现在进行转换可能是值得的。

    转换到vb.net有很多好处——与未来(可能是当前)系统的兼容性和可维护性是最重要的。将其保留为dll的主要优点是节省开发时间,但如果将来出现兼容性问题,这可能会适得其反


    如果代码现在位于VB6项目中,或者如果可以将其添加到VB6项目中,则可以使用vb.net打开.vbp项目文件,它会询问您是否要将其自动转换为vb.net。它做得很好,不包括第三方附加组件。

    可以考虑重写。根据我的经验,从长远来看,这比依赖不透明的COM库或使用VB6迁移向导并拾取它吐出的片段所做的工作要少


    根据您对.NET的了解,重写单个VB6模块不会花费很长时间。如果您刚开始使用.NET,那么这可能需要更长的时间,但也将提供学习.NET的良好机会。

    我有.frm、.frx和.vbp文件以及.bas文件,但是我没有在vs中进行.NET转换的选项,转换器还会转换.bas文件吗?我相信该转换器仅在Visual Studio 2008及更早版本中可用。它已在Visual Studio 2010中删除是。如果.bas文件包含在VB6项目中,它将与其他文件一起转换。我对.net不是很熟悉,但是如果我确实需要重写,我仍然需要使用.bas文件引用的.dll。根据Kevin的评论,代码只有几百行,对吗?+1。如果是几十万行,我想说一句话或警告——如果您尝试选项2,请小心,因为如果您只是复制代码,它可能会编译,但会产生意外的结果。仅举一个例子:在VB6和.NET中,ByRef和ByVal默认值是相反的