我有在x86 32Win上运行的应用程序,我们使用从VirtualAlloc函数分配的1.2Gbyte内存(以防止页面错误)。
我真的想增加应用程序内存,所以我使用wow64(OS Exp 64Bit)在MSDVE 2008下重新编译了我的项目。
我尝试分配超过2Gbyte并且函数VirtualAlloc返回错误。
我甚至试图将标志LARGEADDRESSWARE设置为on,结果是一样的!
在使用VirtualAlloc函数和WOW64之前,如何增加应用程序内存?
答案 0 :(得分:0)
您是否只对VirtualAlloc进行了一次调用?如果是这样,操作系统将需要返回一个连续的地址范围。
虽然LARGEADDRESSAWARE 32位exe可以在WOW64下访问完整的4GB地址空间,但这并不意味着你可以找到一块> 2GB的连续地址空间。
尝试为较小的块进行多次调用。