我的程序在win2000中能够正常运行,但是在98下调试时运行到几个表单时就是报“内存溢出”错误,这几个表单的控件特别多,每个表单都有300个控件(label+textbox,combobox,datacombo等类型)我不知道是什么原因导致这样,是不是98下表单控件有限制! VB应该是256个控件限制(我用了控件数组,没有超限啊)我已经去掉了fm20.dll引用(微软网站说它有可能引起内存溢出错误)在此请教高手支支招???说说你们的经验

解决方案 »

  1.   

    这是win98内存64k边界的问题,主要是你这些控件在内容中开的空间超过了64K,这个我也遇到过,最后经过很多方法得出的结论是无法解决,你只有说服客户安装win2000了.
    可以去掉一些占内容大的控件,象Picture这样的
      

  2.   

    win98内存64k边界??只听说过在DOS 操作系统下640K的哦
      

  3.   

    我也曾经试过这种情况,
    win2k能正常运行,win98就非法操作,
    我开始以为是操作系统的问题,
    后来发现确实是代码有问题,只是奇怪的是win2k为何不报错,可能因为比较健壮吧
    还是建议你再仔细检查一边吧,特别是使用了api的地方
      

  4.   

    lingll(凌零羚) :你能告诉我你的代码错在那些方面,这或许对我有帮助,谢谢了!
      

  5.   

    查看,你那几个表单中的代码 是否使用了API函数,如果是很可能就是调用这些API函数时引起的错误。
      

  6.   

    这几个表单里面没有api调用,api调用我只在login登录时用到从.ini文件里取参数和文件传输时用到,出错的表单没有用apigcj123(佛的光辉) : 还有没有其他的可能啊!
      

  7.   

    to:楼主
    我出错的地方是错误使用api,所以估计对你没帮助
    看看是否操作系统的问题,在其他机上试试
      

  8.   

    另外,代码方面可以用SmartCheck检查检查!可能会找出些什么来!我用这东东解决过许多问题!
      

  9.   

    flax 朋友:
                 
              SmartCheck是什么东西?是VB自身有的吗,能否提供给我一个?
      

  10.   

    smartcheck里也跟踪不到内存溢出错在什么地方,smartcheck 的经验介绍一点!
      

  11.   

    我已经知道答案了,就是vb自带的ComboBox 控件开销资源特厉害,98分配每个应用程序一个
    USER 块(64K),超过它内存就溢出,改用forms2.0控件的combobox控件,问题解决!