请教各位高手VB6.0程序转VB.NET的几个问题

pepezcb 2017-08-28 10:25:53
我们公司有一套VB6.0做的程序,现在需要转换成VB.NET的程序,在转换的过程中发现了各种问题,因为本人没有接触过VB程序,只能边学边用,但是在修改的过程中还是出现了一些不知道怎么解决的问题,想请教一下各位大神,帮我答疑解惑一下,问题如下所示:
1、VB6.0中有个函数Len(obj)获取对象长度,这个对象obj是一个结构体对象,在VB6.0中获取到的对象长度是9775,可是转换为VB.NET程序后,Len(obj)获取对象长度,长度为355,这一点,我一直搞不懂什么意思?
2、在VB6.0中,读取文件的内容,有两个函数
FileOpen(hFile, ComDlgOpen.FileName, OpenMode.Random, , , Len(Record))

FileGet(hFile, Record),
将程序转换为VB.NET后,同样使用这两个函数,其中FileOpen()函数可以正常运行,加载的文件为老的VB6.0程序,通过FilePut(hFile, Record)存储下的文件,但是在运行到函数FileGet(hFile, Record)时,就会出现错误,错误提示为:无法在流的结尾之外进行读取,可是明明那个文件是有内容的,而且内容是正确的,我在老的VB.60程序中测试过的。这个到底是怎么回事呢?这两个函数在VB6.0和VB.NET中有什么不同吗?
3、在VB.NET中如何去声明结构体的特性,以及结构体中的数组对象?

希望了解的朋友帮忙解释下,谢谢了。
...全文
318 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pepezcb 2017-08-30
  • 打赏
  • 举报
回复
引用 5 楼 xdashewan 的回复:
[quote=引用 4 楼 pepezcb 的回复:] 我现在就是不太明白VB和VB.NET中,Len函数有什么不同? 还有就是,FileGet()函数在使用过程中,为什么可以读取到现在程序存储的数据,而读取以前程序存储的数据时,出现错误呢?
参考http://blog.csdn.net/u011854789/article/details/52305241[/quote] 谢谢你的资料,我正在看,需要实验下,是不是这块的问题
pepezcb 2017-08-30
  • 打赏
  • 举报
回复
引用 6 楼 sx_lxh 的回复:
注意:我记得vb.net中的Integer不是vb的int,而是int32,看是不是这儿出问题了
感谢回复,这个问题,我注意到了,类型的转换,我注意到了,也按照VB6.0到VB.NET中的类型进行了修改,但是,还是不对。
sx_lxh 2017-08-29
  • 打赏
  • 举报
回复
注意:我记得vb.net中的Integer不是vb的int,而是int32,看是不是这儿出问题了
pepezcb 2017-08-28
  • 打赏
  • 举报
回复
引用 1 楼 xdashewan 的回复:
1.vb里结构体什么样?你翻译成什么样?对结构取长度用来做什么? 2.翻译并不代表所有代码都要一模一样,比如你知道是读取文件,那么完全可以逻辑相同的前提下改为vb.net的方法并不一定要照搬vb 3.在面向对象编程语言中我更推荐使用类而不是结构体
谢谢回复! 我是使用2005直接转换过来的,里边的大部分内容都是没有改变的。 我并不是一定要翻译成一模一样的,只是我对VB不熟悉,所以大部分都是使用的直接转换过来的程序内容,在结构体里边,按照VB到VB.NET中的类型要求进行转换的。这个程序里边的获取长度,应当是用来对结构体进行填充时,需要的结构体对象长度,所以获取了下长度,后来我做了下实验,使用转换后的程序,进行文件存储,然后在读取文件,这个是没有问题的,唯一有问题的地方,就在原来老的程序,存储下的文件,现在无法读取出来了,这块这个,我不太明白,同一个函数,在VB和VB.NET中是不一样的吗?
xdashewan 2017-08-28
  • 打赏
  • 举报
回复
1.vb里结构体什么样?你翻译成什么样?对结构取长度用来做什么? 2.翻译并不代表所有代码都要一模一样,比如你知道是读取文件,那么完全可以逻辑相同的前提下改为vb.net的方法并不一定要照搬vb 3.在面向对象编程语言中我更推荐使用类而不是结构体
xdashewan 2017-08-28
  • 打赏
  • 举报
回复
引用 4 楼 pepezcb 的回复:
我现在就是不太明白VB和VB.NET中,Len函数有什么不同? 还有就是,FileGet()函数在使用过程中,为什么可以读取到现在程序存储的数据,而读取以前程序存储的数据时,出现错误呢?
参考http://blog.csdn.net/u011854789/article/details/52305241
pepezcb 2017-08-28
  • 打赏
  • 举报
回复
引用 3 楼 xdashewan 的回复:
[quote=引用 2 楼 pepezcb 的回复:] 同一个函数,在VB和VB.NET中是不一样的吗?
方法应该是一样的,可能你FileOpen的时候len函数导致参数不同[/quote] 我现在就是不太明白VB和VB.NET中,Len函数有什么不同? 还有就是,FileGet()函数在使用过程中,为什么可以读取到现在程序存储的数据,而读取以前程序存储的数据时,出现错误呢?
xdashewan 2017-08-28
  • 打赏
  • 举报
回复
引用 2 楼 pepezcb 的回复:
同一个函数,在VB和VB.NET中是不一样的吗?
方法应该是一样的,可能你FileOpen的时候len函数导致参数不同

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧