2

正如标题所述,我在 win 7 64 位下运行一个 32 位应用程序。该应用程序是在 Embarcadero XE2 中用 C++ 编写的。我需要超过 2GB 的内存。

脚步:

  • 我启用了 3GB 开关并重新启动了电脑。
  • 我尝试添加-GF: LARGEADDRESSAWARE到项目选项/C++ 链接器/输出标志,但随后链接失败。它说:“失败的命令GF:”或类似的东西。

然后我在论坛上发现您应该在 FLAGS 部分下的 .bpr 文件中手动执行此操作。我添加了标志,然后链接了项目。但是,我在应用程序中的可用内存指示器告诉我我仍然低于 2 GB。

问题:

  1. 如何正确完成这项工作?
  2. 如何判断我是否有 3GB 内存?
4

1 回答 1

4

/3GB开关仅适用于 32 位系统。您的系统是 64 位系统。这意味着带有LARGEADDRESSAWAREPE 标志的 32 位可执行文件将具有 4GB 的地址空间。不要尝试使用/3GB引导选项。

LARGEADDRESSAWARE您可以使用任何 PE 查看工具检查您的可执行文件是否设置了PE 标志。使用 MS 工具链,您将使用dumpbin. Embarcadero 工具链等价物是tdump. 此外,还有无数的 GUI PE 查看器。找到一个可以工作的工具,并确保你已经正确设置了这个 PE 标志。

于 2016-01-28T15:39:52.323 回答