今天让VB(非VB.NET)的ListBox给坑了!

用VB6做了一个批量处理工具。今天收到用户反馈说文件数超过30000就不执行了。

 

第一反映是自己是不是在该用long(VB中long是32位整数)的地方误用了Integer(VB6中Integer是16位整数,范围-32768 ~ 32767)溢出错误。花了几小时检查代码,没有发现确切的问题。最后,调试发现在添加大量纪录后,VB原生控件ListBox的ListCount居然变成了负数!上google网站百度一下,果然别人也碰到了类似问题。

 

显然,微软在这个属性上使用的是Integer类型,很容易就超出范围溢出了。VB6真是很老了。只好全面改代码,把控件换成了ListView。

你可能感兴趣的:(今天让VB(非VB.NET)的ListBox给坑了!)