Если ваша программа использует много ресурсов Windows, это может быть нехватка ресурсов.
Существует запись в реестре, которую можно увеличить, чтобы увеличить размер кучи для XP. Для Vista Microsoft уже устанавливает значение по умолчанию выше. Я рекомендую изменить значение по умолчанию 3072 как минимум до 8192.
Эта информация задокументирована в ID статьи базы знаний 126962 (или в поиске «Недостаточно памяти»). Дополнительные сведения о значениях параметров можно найти в статье 184802. Код статьи базы знаний
Я предлагаю вам прочитать статью базы знаний, но основная информация об изменении:
1) Запустить редактор реестра (REGEDT32.EXE).
2) Из поддерева HKEY_ LOCAL_MACHINE перейдите в следующую папку:
\System\CurrentControlSet\Control\Session Manager\SubSystem
3) В правой части экрана дважды нажмите клавишу:
windows
4) Во всплывающем окне вы увидите выделенное очень длинное поле. Переместите курсор к началу строки, ища это (значения могут отличаться):
SharedSection=1024,3072,512
5) SharedSection задает кучу системы и рабочего стола, используя следующий формат: SharedSection = xxxx, yyyy, zzz, где xxxx определяет максимальный размер кучи всей системы (в килобайтах), yyyy определяет размер кучи для каждого рабочего стола , а zzz определяет размер кучи рабочего стола для «неинтерактивной» оконной станции.
6) Измените ТОЛЬКО значение гггг на 8192 (или больше) и нажмите OK.
7) Выйдите из редактора реестра и перезагрузите компьютер, чтобы изменения вступили в силу.
Удачи