我們的應用程序在ERROR_NOT_ENOUGH_MEMORY
(「沒有足夠的存儲可用於處理此命令」)的特定用戶計算機上失敗。疑難解答ERROR_NOT_ENOUGH_MEMORY
這個錯誤顯然是在我們正在使用的Delphi VCL框架的深處提出的,所以我不確定哪個Windows API函數是負責任的。
記憶是個問題嗎?到GlobalMemoryStatus
的呼叫提供了以下信息:
- dwTotalPhys - 1063150000(〜1 GB)
- dwAvailPhys - 26735000(〜27 MB)
- dwAvailPage - 14.89億(〜1.4 GB)
對於我來說,在分頁文件中有太多可用空間時,Windows會讓可用物理內存變得如此之低,但我對Windows的虛擬內存管理知之甚少,無法確定這是否正常。是嗎?
如果不是內存,那麼哪個資源限制被擊中?根據我在線閱讀的內容,ERROR_NOT_ENOUGH_MEMORY
可能是由於應用程序觸及了幾個限制(GDI對象,USER對象,句柄等)而不是內存中的任何一個。有沒有Windows的強制限制的完整列表?有什麼方法可以找出哪個極限正在被擊中?我嘗試了谷歌,但我找不到任何系統的概述。
GDI是我的第一個停靠港。雖然奇怪的是它只發生在一臺用戶的機器上,但這也是我開始的地方。它也可能是一些類似於正在使用的手柄等等。祝你好運! – 2009-09-21 14:22:29