c - DOS/4GW fatal error (1307) : not enough memory

标签 c windows memory dos watcom

我正在尝试在 Win7 32 位操作系统中运行一个 dos/4gw 应用程序。我收到以下错误消息, DOS/4GW fatal error (1307):内存不足

当我在 WinXP 32 位操作系统中运行相同的应用程序时,它运行良好,没有任何问题。

dos/4gw 应用程序是使用 Watcom C 编译器构建的。

mem 命令显示以下可用内存,

655360 字节总常规内存 MS-DOS 可用的 655360 字节 580640 最大的可执行程序大小 16777216 字节总 EMS 内存 16777216 字节空闲 EMS 内存 32505856 字节总连续扩展内存 0 字节可用的连续扩展内存 15580160 字节可用 XMS 内存 驻留在高端内存区的 MS-DOS

从上面可以看出内存不足1MB。但是我的程序需要的不止于此。基本上我需要扩展我的 DOS 内存以获得超过 1MB 的内存来运行我的 dos/4gw 应用程序。

有人可以帮助解决这个内存问题吗?

谢谢!

-阿南德

最佳答案

问题的答案是doynax发送的回复:

“我相信在最新版本的 Windows 中有一个垫片将可用的 DPMI 内存限制为 32 MB,对于更古老的软件来说,这些软件无法准备好如此大量的 RAM。您可以尝试在 HKEY_LOCAL_MACHINE 下创建一个 DpmiLimit 键\SYSTEM\CurrentControlSet\Control\WOW 在注册表中以字节限制作为 DWORD 来调整它”

关于c - DOS/4GW fatal error (1307) : not enough memory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42303118/

相关文章:

c - C语言维吉尼亚密码的几个问题

python - 如何访问应用程序 'File Description' ?

windows - 如何在依赖于操作系统的 gradle 条件下应用插件

c++ - 使用GDI +和C++减少闪烁

java - 内存消耗java文件流

c - 写入分配的字符缓冲区

c - 结构链表中的元素编号

c - C99 的支持有多普遍?

c++ - 奇怪的 C 堆栈内存覆盖

python - 为什么 sys.getsizeof 对于非常大的列表返回相同的输出