在几个应用程序中,“保存”和“加载”对话框窗口就是不显示。而在记事本中(显然它处理返回代码)报告内存不足问题,我确信情况并非如此;我认为它假设内存不足,因为它无法获取窗口句柄。无论如何,Windows 肯定出了问题,但事件日志中没有任何内容。知道为什么会发生这种情况吗?
答案1
我猜是 32 位 Windows XP,内存超过 2 GB。Windows 似乎存在问题,它会错误地报告内存不足,而实际上内存超过了需要的量。这是因为使用有符号整数而不是无符号整数来测量 RAM 量(您知道,编译器会警告我们注意有符号-无符号比较)。
您要么必须移除 RAM 直到内存为 2 GB 或更少,要么需要物理地址扩展 (PAE)。或者,如果您正在编译程序,您可以使用/LARGEADDRESSAWAREMicrosoft 链接器的链接器标志,但这不是这里提到的问题。[来源]
您可能还想尝试将 Windows XP 更新到最新版本,其中可能包含能够识别更大地址的更新二进制文件,这将解决该问题。还有/3GB,/4GB和/PAE中的选项启动配置文件这将使系统意识到它正在运行超过 2 GB 的 RAM。
我希望这能解决问题。您也可以尝试切换到 64 位版本的操作系统,但由于某些操作系统的成本以及某些驱动程序的可用性,这并不总是一个选择。
编辑:我忘了说你也可以尝试增加页面文件的大小。这很有帮助,特别是如果页面文件为 2 GB,并且你增加了可用的 RAM 量,而没有修改页面文件的大小。