특정 사용자의 컴퓨터에서 응용 프로그램이 ERROR_NOT_ENOUGH_MEMORY
("이 명령을 처리 할 수있는 저장소가 부족합니다")으로 실패합니다.ERROR_NOT_ENOUGH_MEMORY 문제 해결
우리가 사용하는 Delphi VCL 프레임 워크 내에서 어딘가 깊은 곳으로 오류가 발생하고 있으므로 어떤 Windows API 함수가 책임이 있는지 잘 모르겠습니다.
메모리에 문제가 있습니까?는 GlobalMemoryStatus
를 호출하면 다음과 같은 정보를 제공합니다
- dwTotalPhys - 1063150000 (~ 1 GB)
- dwAvailPhys - 26735000 (27 ~ MB)
- dwAvailPage - 1489000000 (~ 1.4 GB)
페이징 파일에서 너무 많은 공간을 사용할 수있게되면 Windows에서 사용 가능한 실제 메모리가 너무 적게 느껴지지만 실제로 정상인지 아닌지를 알기에는 Windows 가상 메모리 관리에 대해 충분히 알지 못합니다. . 그렇지?
메모리가 아닌 경우 어떤 리소스 제한에 도달 했습니까? 내가 온라인에서 읽은 것, ERROR_NOT_ENOUGH_MEMORY
은 응용 프로그램이 여러 한계 (GDI 개체, USER 개체, 핸들 등) 중 하나를 치는 결과 일 수 있으며 메모리가 아닐 수도 있습니다. Windows의 제한 사항에 대한 포괄적 인 목록이 있습니까? 어느 한도에 도달했는지 알아내는 방법이 있습니까? Google을 사용해 보았지만 체계적인 개요를 찾지 못했습니다.
GDI는 첫 번째 호출 포트입니다. 한 사용자의 컴퓨터에서만 발생하는 것은 이상한 일이지만, 그것이 내가 시작할 곳입니다. 그것은 또한 사용중인 핸들 수와 같은 것일 수도 있습니다. 행운을 빌어 요! –