【发布时间】:2023-03-03 07:26:20
【问题描述】:
我面临以下问题:我需要在我的系统上找到可用内存。 GlobalMemoryStatusEX 在 x64 上构建时可以正常工作。但是在 Win32 上构建时给出了错误的答案。我在 Windows 7 64 位上使用 Intel Visual Fortran 2010。 这是我的代码示例:
program test
use kernel32
use ifwinty
implicit none
type(t_memorystatusex) :: status
integer :: RetVal
status%dwLength = sizeof(status)
RetVal = GlobalMemoryStatusEX(status)
end program test
非常感谢!
【问题讨论】:
-
允许 32 位代码在 64 位操作系统上执行的 wow64 模拟器非常强大,它非常擅长让 32 位代码相信它在 32 位操作系统上运行。包括生成“错误”值在内,32 位操作系统当然不能拥有超过 4 GB 的地址空间。实际上有更多的“可用内存”对于 32 位应用程序来说是一个毫无意义的细节,它不能直接利用它。使用 64 位编译器。
标签: visual-studio-2010 fortran 32bit-64bit