从stacktrace看起来它总是在CreateWnd调用期间
Main (edc):004146cc +070 app.exe SysUtils RaiseLastOSError00414655 +005 app.exe SysUtils RaiseLastOSError004ce44c +130 app.exe Controls TWinControl.CreateWnd00535a72 +022 app.exe cxControls TcxControl.CreateWnd004ce82a +016 app.exe Controls TWinControl.CreateHandle00553d21 +005 app.exe cxContainer TcxContainer.CreateHandle00586ef1 +005 app.exe cxEdit TcxCustomEdit.CreateHandle005c331d +005 app.exe cxDropDownEdit TcxCustomDropDownEdit.CreateHandle004ceaf0 +074 app.exe Controls TWinControl.UpdateShowing004ceb1e +0a2 app.exe Controls TWinControl.UpdateShowing004cebdc +03c app.exe Controls TWinControl.UpdateControlState004d118a +026 app.exe Controls TWinControl.CMVisibleChanged004cb713 +2bb app.exe Controls TControl.WndProc004cf569 +499 app.exe Controls TWinControl.WndProc004b727d +4c1 app.exe Forms TCustomForm.WndProc004cb3a0 +024 app.exe Controls TControl.Perform004c9f6a +026 app.exe Controls TControl.SetVisible004b6c46 +03a app.exe Forms TCustomForm.SetVisible004baf1b +007 app.exe Forms TCustomForm.Show004bb151 +14d app.exe Forms TCustomForm.ShowModal007869c7 +0d3 app.exe UfrmPrice 770 +19 TfrmPrice.EditPrice0078655d +009 app.exe UfrmPrice 628 +0 TfrmPrice.actNewBIDExecute00431ce7 +00f app.exe Classes TBasicAction.Execute004c2cb5 +031 app.exe ActnList TContainedAction.Execute004c397c +050 app.exe ActnList TCustomAction.Execute00431bb3 +013 app.exe Classes TBasicActionlink.Execute004af384 +090 app.exe Menus TMenuItem.Click004b059f +013 app.exe Menus TMenu.dispatchCommand004b16fe +082 app.exe Menus TPopupList.WndProc004b164d +01d app.exe Menus TPopupList.MainWndProc004329a8 +014 app.exe Classes StDWndProc7e4196b2 +00a USER32.dll dispatchMessageA004bea60 +0fc app.exe Forms TApplication.ProcessMessage004bea9a +00a app.exe Forms TApplication.HandleMessage004becba +096 app.exe Forms TApplication.Run008482c5 +215 app.exe Appname 129 +42 initialization
我从来没有能够到底是什么导致这一点,因为它发生很少,我没有关心,但我想找出原因,并希望纠正它…
编辑:全栈跟踪
编辑2:更多信息…今天经历过的客户端已经安装了我的应用程序大约4个月,它是在他的电脑上运行每天8小时。这个问题只出现在今天,并保持重现,即使他杀了我的应用程序,并重新启动它。他的系统上没有其他应用程序表现得奇怪。重新启动后问题完全消失。这是否指向Steve提到的堆短缺?
编辑3:有趣的msdn博客文章here和here关于桌面堆的话题。虽然我不知道这是否是这个问题的原因,它肯定看起来可能。
解决方法 如果你的程序使用了大量的windows资源,它可能是一个资源堆短缺。有一个注册表项可以增加来提高XP的堆大小。对于Vista,Microsoft已经将默认值设置为更高。我建议将默认值3072更改为至少8192。
此信息记录在MS Knowledge Base(或搜索“内存不足”)。关于参数值的附加细节可以在文章KB184802中找到。
我建议你阅读知识库文章,但更改的基本信息是:
>运行注册表编辑器(REGEDT32.EXE)。
>从HKEY_ LOCAL_MACHINE子树,转到以下项:
\System\CurrentControlSet\Control\Session Manager\SubSystem
>在屏幕的右侧双击键:
windows
>在d出窗口中,您将看到一个非常长的字段。将光标移动到字符串开头附近(值可能不同):
SharedSection=1024,3072,512
> SharedSection使用以下格式指定系统和桌面堆:SharedSection = xxxx,yyyy,zzz其中xxxx定义系统范围堆的最大大小(以千字节为单位),yyyy定义每个桌面堆的大小,zzz定义一个“非交互”窗口站的桌面堆的大小。
>将ONLY yyyy值更改为8192(或更大),然后按OK。
>退出注册表编辑器并重新启动PC以使更改生效。
祝你好运。
总结以上是内存溢出为你收集整理的delphi – 系统错误 代码:8.没有足够的存储可用于处理此命令全部内容,希望文章能够帮你解决delphi – 系统错误 代码:8.没有足够的存储可用于处理此命令所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)