内存溢出的疑难,VB板块中没有能实际解决问题的,只好在这里发了!对Windows有研究的请进!
我在Windows2000 Server下开发一个软件。编译、打包等均非常正常。
然后在新安装的Windows2000 Server下测试。该系统没有安装任何其他软件,就是将Win2000Svr安装上去,然后立刻安装我开发的软件。安装正常,进入系统正常。系统中大约有20多个菜单项,每个菜单项都对应一个表单。其中却有两个表单无法正常Load。报告的错误是:未知错误(简体中文下)。
通过Windows2000 Server提供的Windows Update,将Windows在线升级。待下载了全部最新的补丁升级完成后,再运行我的软件,进入,原来不能Load的表单,现在完全正常了。
同样的情况也出现在Windows98 SE(简体和繁体都有),在繁体中报错和简体中的有所不同,简体依然是未知错误,而在繁体版中,报告内存溢出。在线升级所有布丁后,均不报错了。
后来我特意看了这两个表单,除了其中一个里面有一幅大图片之外,另一个表单和平常表单一样简单,我将大图片改放在资源文件中,在表单Load后,再将图片载入。然后再次在上述Windows中运行,问题解决。但是没有图片的那个表单故障依旧。
现在的问题是,VB程序,究竟在最初给软件分配的内存是多大?是不是和原来的C语言编译器一样,有大内存模式,小内存模式和tiny模式?如果有,又如何增加软件分配的内存空间?
在Windows体系中,内存似乎都是动态分配的,应该不会存在上述内存的故障吧。
从安装补丁上来看,又似乎是Windows本身的问题。可是我曾花了很长时间去看Micorsoft的补丁,均没有找到哪个补丁是用来修补软件内存溢出的问题的。
现在请问:
1、在Windows体系中,软件的内存分配是不是和原来C语言中一样,有内存大小的模式?如果有,如何给VB、VC等来设定内存模式?如果没有,为何会产生上述问题?
(我想该不会有人说我的内存太小吧,呵呵!)
2、如果是Windows系统漏洞,请问该用哪个补丁来修补?
附:
我的开发环境:
Windows2000 Server SP3
PIII 赛扬1.1G
SDRAM 256M
VB6.0 SP5(简体中文企业版)
测试环境:
Windows2000 Server SP1/SP2/SP3 (含简体、繁体)
Windows2000 Professional SP3(含简体、繁体)
Windows2000 Advance SP3(含简体、繁体)
Windows98SE (简体、繁体)
在上述测试环境中,均是在线Update之后,软件正常。而且在简体中开始报错均是未知错误,而在繁体中则报错为内存溢出。在线Update之后,一切正常。