ERROR_NOT_ENOUGH_MEMORY
( "このコマンドを処理するのに十分な記憶域がない")という特定のユーザーのコンピュータで、アプリケーションが異常終了しています。ERROR_NOT_ENOUGH_MEMORYのトラブルシューティング
私たちが使用しているDelphi VCLフレームワークのどこかの深いところにエラーが表示されているようですが、どのWindows API関数が責任を負っているのかわかりません。
メモリに問題はありますか?GlobalMemoryStatus
への呼び出しは、以下の情報を提供します:
- dwTotalPhys - 1063150000(約1 GB)
- dwAvailPhys - 26735000(〜27メガバイト)
- dwAvailPage - 14.89億(〜1.4ギガバイト)
ページングファイルで利用可能な領域が多くなると、Windowsが利用可能な物理メモリを非常に低くすることができて不思議に思われますが、これが正常かどうかを知るためのWindowsの仮想メモリ管理については十分に分かりません。それは...ですか?
メモリではない場合、どのリソース制限がヒットしていますか?私がオンラインで読んだところでは、ERROR_NOT_ENOUGH_MEMORY
は、アプリケーションがいくつかの制限(GDIオブジェクト、USERオブジェクト、ハンドルなど)のいずれかに当たった結果であり、必ずしもメモリではない可能性があります。 Windowsが実施する制限の包括的なリストはありますか?どちらの制限が当たっているかを知る方法はありますか?私はGoogleを試しましたが、体系的な概要は見つかりませんでした。
GDIが私の最初の呼び出しポートです。あるユーザーのマシンでしか起こっていないことは間違っていますが、それが私が始めるところです。それはまた、使用中のハンドルの数のようなものかもしれません。幸運を祈る! –