我一直在尝试通过调用 GetSystemInfo() 并检查 SYSTEM_INFO 结构上的 lpMaximumApplicationAddress 来确定我的程序运行的系统上的 3GB 开关是打开还是关闭。
没有运气。我想我做错了什么。
如何在 C 中检查 Windows 上的 3GB 开关是否打开?
代码表示赞赏。
谢谢
最佳答案
假设您的程序编译为大地址感知,您可以简单地调用 GlobalMemoryStatusEx
并检查 ullTotalVirtual
字段。如果它大于 2GB,并且您在 32 位系统上运行,则必须打开 3GB 标志。
我实际上不知道如何“正确”判断 Windows 本身是 32 位还是 64 位,但是如果您有一个 32 位进程,您可以调用 IsWow64Process
来查看您是否在 64 位操作系统上运行。
这一切似乎有点间接,我知道:)
关于c - 以编程方式检测 3gb Switch 是打开还是关闭,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2292221/