У нас есть несколько приложений Win32 (закодированных в Delphi 2006), где иногда пользователь получает сообщение об ошибке "Системная ошибка". Код: 8. Недостаточно памяти для обработки этой команды..
Из stacktrace это похоже на то, что он всегда во время вызова CreateWnd
Main ($1edc):
004146cc +070 app.exe SysUtils RaiseLastOSError
00414655 +005 app.exe SysUtils RaiseLastOSError
004ce44c +130 app.exe Controls TWinControl.CreateWnd
00535a72 +022 app.exe cxControls TcxControl.CreateWnd
004ce82a +016 app.exe Controls TWinControl.CreateHandle
00553d21 +005 app.exe cxContainer TcxContainer.CreateHandle
00586ef1 +005 app.exe cxEdit TcxCustomEdit.CreateHandle
005c331d +005 app.exe cxDropDownEdit TcxCustomDropDownEdit.CreateHandle
004ceaf0 +074 app.exe Controls TWinControl.UpdateShowing
004ceb1e +0a2 app.exe Controls TWinControl.UpdateShowing
004cebdc +03c app.exe Controls TWinControl.UpdateControlState
004d118a +026 app.exe Controls TWinControl.CMVisibleChanged
004cb713 +2bb app.exe Controls TControl.WndProc
004cf569 +499 app.exe Controls TWinControl.WndProc
004b727d +4c1 app.exe Forms TCustomForm.WndProc
004cb3a0 +024 app.exe Controls TControl.Perform
004c9f6a +026 app.exe Controls TControl.SetVisible
004b6c46 +03a app.exe Forms TCustomForm.SetVisible
004baf1b +007 app.exe Forms TCustomForm.Show
004bb151 +14d app.exe Forms TCustomForm.ShowModal
007869c7 +0d3 app.exe UfrmPrice 770 +19 TfrmPrice.EditPrice
0078655d +009 app.exe UfrmPrice 628 +0 TfrmPrice.actNewBidExecute
00431ce7 +00f app.exe Classes TBasicAction.Execute
004c2cb5 +031 app.exe ActnList TContainedAction.Execute
004c397c +050 app.exe ActnList TCustomAction.Execute
00431bb3 +013 app.exe Classes TBasicActionLink.Execute
004af384 +090 app.exe Menus TMenuItem.Click
004b059f +013 app.exe Menus TMenu.DispatchCommand
004b16fe +082 app.exe Menus TPopupList.WndProc
004b164d +01d app.exe Menus TPopupList.MainWndProc
004329a8 +014 app.exe Classes StdWndProc
7e4196b2 +00a USER32.dll DispatchMessageA
004bea60 +0fc app.exe Forms TApplication.ProcessMessage
004bea9a +00a app.exe Forms TApplication.HandleMessage
004becba +096 app.exe Forms TApplication.Run
008482c5 +215 app.exe AppName 129 +42 initialization
Я никогда не мог понять, что вызывает это, и, поскольку это происходит довольно редко, я не был заинтересован, но я хотел бы узнать, что вызывает его и, надеюсь, исправить его...
EDIT: Полная Stacktrace
РЕДАКТИРОВАТЬ 2: Подробнее... Клиенту, который испытал это сегодня, было установлено мое приложение около 4 месяцев, и он работает на его ПК 8 часов в день. Проблема появилась только сегодня и продолжала появляться, даже если он убил мое приложение и перезапустил его. Ни одно из других приложений в его системе не вел себя странно. После перезагрузки проблема полностью исчезает. Это указывает на нехватку кучи, о которой говорит Стив?
РЕДАКТИРОВАТЬ 3: Интересное сообщение в блоге msdn здесь и здесь по теме кучи рабочего стола. Хотя я не уверен, является ли это причиной проблемы, это, безусловно, выглядит вероятным.