我几乎完成了将模块从VB6转换为VB.NET,但是我遇到了以下2个引号的问题,我想知道是否有任何方法可以解决这个问题:
Structure AUDINPUTARRAY
bytes(5000) As Byte
End Structure
Run Code Online (Sandbox Code Playgroud)
我正在尝试将该字节行更改为:Dim bytes(5000)as Byte,但它不允许我在结构中定义大小.
这是第二个:
Private i As Integer, j As Integer, msg As String * 200, hWaveIn As integer
Run Code Online (Sandbox Code Playgroud)
我不知道如何转换:msg As String*200
我有一个非常大的VB6代码库,有大量的第三方控件.想将其移至.NET.重写它是不可能的 - 客户认为没花钱去做同样的事情.使用内置升级向导迁移到.NET基本上是不起作用的.
有没有人从http://www.vbmigration.com/尝试过VB迁移合作伙伴. 如果是这样,有什么样的体验?
我正在迁移的桌面应用程序大量使用了树视图控件,并且许多调用TreeNode.FirstSibling例如
'UPGRADE_ISSUE: MSComctlLib.Node property tvTreeView.SelectedItem.FirstSibling was not upgraded.
If tvTreeView.SelectedNode.FirstSibling.Index = 1 Then
...
End If
Run Code Online (Sandbox Code Playgroud)
是否有相同的功能使用?
我知道有很多关于VB6迁移的问题,但我不相信我的确切情况已在其中得到解答.
基本上,我们公司希望迁移我们的任务关键型VB6业务线应用程序,这个应用程序非常庞大,使用自定义库与其他内部程序进行通信,而一些dll则无法访问源代码.这个遗留应用程序没有任何类似的"最佳实践".事实上,几乎所有变量都是全局变量,大多数代码(如打印等)都只是复制/粘贴到需要的地方.好吧,复制,粘贴和更改只是一点点......
如果我们应该尝试迁移,VB.NET和C#.NET之间的决定取决于我们,他们希望我们能够满足将应用程序转换为基于Web的格式的可能性.管理层不会在外部移民公司上花钱.
另一个选项来自我们的基础架构团队,该团队一直在考虑使用虚拟化来保留Visual Basic 6.0客户端 - 服务器应用程序
我们的老板希望我们提供高水平的估算和建议,但告诉我们高管们希望在2010年4月之前完成.
是的,我们嘲笑那个.
我的问题是:
有没有人有任何与虚拟化路径分享的经验,因为从开发团队的角度来看,这是一个更好的选择?它对你有用吗?有没有你会警告的pitfulls?
尽管之前的系统分析师已经给出了1 - 2年的估计,但管理层不断推出2-4个月的时间框架.任何说服他们这样做的建议都是疯了吗?
有没有人成功迁移大型VB6应用程序到网络应用程序?之前的VB6迁移问题之一有一个答案,即将部分转换为支持.NET的COM库,以掏空VB6应用程序.可以使用这种方法吗?有没有人在这里成功尝试过?
我的任务是将旧的VB6程序转换为C#.我无法移植的一个功能是从二进制文件中读取的字段计算出生日期:
.BirthDate = CDate((CLng(recPatient.birthDateByte2) * 256) +
(recPatient.birthDateByte1 + 366))
Run Code Online (Sandbox Code Playgroud)
我能找到的唯一一个远程类似的功能是:
DateTime BirthDate = DateTime.ToDateTime((long)recPatient.birthDateByte2) * 256)
+ (recPatient.birthDateByte1 + 366));
Run Code Online (Sandbox Code Playgroud)
然而,ToDateTime(long)只是返回一个InvalidCastException.
现在我可以手动构建字符串,但我无法在VB6上的任何地方找到任何文档CDate(long).
我究竟做错了什么?
有一个String.Format函数在文档中被称为FormatVB6 函数的模拟。还有Format来自VisualBasic命名空间的函数是为了兼容性而提供的,并且基本上具有与String.Format.
事实上,这两种格式的日期和数字。
但是 VB6 的函数也能够格式化字符串:
? format$("hi there", ">")
HI THERE
? format$("hI tHeRe", "<")
hi there
? format$("hi there", ">!@@@... not @@@@@")
HI ... not THERE
Run Code Online (Sandbox Code Playgroud)
String.Format就我而言,无法做到这一点,新的Format. 我在兼容性Format文档中也找不到任何提及VB6 功能的某些部分丢失的内容,似乎该功能已被“悄悄地”弃用。
框架中有什么东西可以进行这种类型的格式化吗?
VB6应用程序与.NET平台的结合几乎就像重写一样,无论是VB.NET还是C#.与.NET平台相比,您是否认为在Java平台上进行此操作需要更多的努力,因为它无论如何都是重写?请分享你的想法!
我继承了使用VB6编写的Outlook 2003 COM加载项(注意:NOT VB.NET).
我需要升级它以使用Outlook 2010.是否可以使用VB6为Outlook 2010创建加载项,或者我是否需要重新实现所有内容?
我有一个已迁移到 VB.net 的 VB6 应用程序,并且正在尝试将框架版本升级到 4.5 - 它抱怨 Microsoft.VisualBasic.Compatibility dll 中的所有内容都已过时。我能够相当轻松地替换除 FileListBox 和 DirListBox 之外的所有内容 - 虽然很乏味,但我不必创建任何新控件。
这些控件有相近的替代品吗?有谁知道它们是否已与框架的其余部分一起开源?
语境
我有一个使用这种特殊类型的vb6软件:
Type Example
A As Integer
B As Single
C As String * 10
D As Byte
E As String
End Type
Run Code Online (Sandbox Code Playgroud)
这个结构完全保存在一个带有简单“ put ”的二进制文件中:
Dim Numfile%
Numfile = FreeFile
[...]
Put #Numfile, , example_instance
[...]
Run Code Online (Sandbox Code Playgroud)
问题
现在我想从vb.net (.NET Framework 4)读取这个二进制文件。问题是在 .net 中我们没有固定的字符串......我试图写一些类似的东西:
Structure Example
Dim A As Short
Dim B As Single
Dim C() As Char ' ---> This should replace String * 10.
Dim D As Byte
Dim E As String
End …Run Code Online (Sandbox Code Playgroud)