内存溢出的疑难,VB板块中没有能实际解决问题的,只好在这里发了!对Windows有研究的请进!

programart_life 2003-05-08 06:47:37
我在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之后,一切正常。
...全文
130 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
or 2003-05-08
  • 打赏
  • 举报
回复
呵,长见识了.
In355Hz 2003-05-08
  • 打赏
  • 举报
回复
是 stack 溢出?stack 的默认大小是 1MB,这个值 VC 可以在设置时从

Project Settings --> Linker (Page) --> Category : Output --> Stack Allocations --> Reserve (in bytes)

不知道 VB 能否设置,这个值实际保存在 PE 文件 IMAGE_OPTIONAL_HEADER 的 SizeOfStackReserve 好像一些第三方程序也可以更改
wangjidh 2003-05-08
  • 打赏
  • 举报
回复
是不是你的VB开发版本太新了?嘻嘻

估计你没有把所有的VB应用到的东西都打包吧。
仔细检查你打包进去的各个控件的版本是不是和开发时使用的版本一样。
另外非微软的控件使用的时候也要检查一下它要求的运行环境。

把你出问题的窗口调用的API贴出来大家看看。
superS 2003-05-08
  • 打赏
  • 举报
回复
32位windows下每个程序都有自己的4G地址空间,再没有什么模式了。
shilong 2003-05-08
  • 打赏
  • 举报
回复
根据OS的版本,作不同的处理
VisualStudio 2003-05-08
  • 打赏
  • 举报
回复
在你系统update后软件正常,没有update就不能运行,这说明是系统问题
出现这种情况一般是你调用了系统核心的几个dll文件中的api造成的.
而微软的帮助文档一般对这些api适用于哪些补丁包并不作说明,
如果你在系统update后仍然出现异常,那么请检查你的程序.

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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