Наше приложение не работает на одном компьютере конкретного пользователя с ERROR_NOT_ENOUGH_MEMORY
(«Недостаточно памяти для обработки этой команды»).Устранение неисправностей ERROR_NOT_ENOUGH_MEMORY
Ошибка, по-видимому, возникает где-то глубоко в рамках среды Delphi VCL, которую мы используем, поэтому я не уверен, какая функция Windows API несет ответственность.
Является ли память проблемой? Вызов GlobalMemoryStatus
дает следующую информацию:
- dwTotalPhys - 1063150000 (~ 1 Гб)
- dwAvailPhys - 26735000 (~ 27 MB)
- dwAvailPage - 1489000000 (~ 1,4 Гб)
Мне кажется странным, что Windows позволила бы доступной физической памяти стать настолько низкой, когда в файле подкачки будет доступно столько места, но я недостаточно знаю об управлении виртуальной памятью Windows, чтобы узнать, нормально это или нет. , Это?
Если нет памяти, то какой предел ресурса попадает? Из того, что я читал онлайн, ERROR_NOT_ENOUGH_MEMORY
может быть результатом приложения, поражающего любой из нескольких лимитов (объекты GDI, объекты USER, дескрипторы и т. Д.), А не обязательно память. Есть ли исчерпывающий список ограничений Windows? Есть ли способ узнать, какой предел попал? Я пробовал Google, но я не мог найти систематического обзора.
GDI - мой первый порт захода. Хотя странно, что это происходит только на машине одного пользователя, вот где я начну. Он также может быть чем-то вроде количества используемых ручек и т. Д. Удачи! – 2009-09-21 14:22:29