提问人:Anurag Daware 提问时间:7/1/2015 最后编辑:Anurag Daware 更新时间:8/21/2015 访问量:594
无法在 vc++ mfc 应用中分配 1.5GB 内存
Not able to allocate 1.5GB memory in a vc++ mfc app
问:
我有用VS2010编写的MFC vc ++应用程序。 当我尝试使用
- malloc :返回 NULL
- new 运算符:它抛出 CMemoryException
但是当我像这样用 c++ 编写独立的 win32 控制台应用程序时:
double *ptr = NULL;
ptr = new double[185000000];
它工作正常,ProcessExplorer 应用程序显示 ~1411MB 内存已全部覆盖。
我的MFC应用程序具有GUI和许多库,可与Agilent仪表和NI-6255仪表电压测量配合使用。
答:
0赞
Anurag Daware
8/21/2015
#1
以下链接基本上解决了问题:https://msdn.microsoft.com/en-us/library/windows/desktop/aa366778(v=vs.85).aspx
在 x64 位系统上,32 位程序最高可达 2GB 内存。 在此限制中,如果加载了其他 DLL,则内存将碎片化,并且连续地址空间不可用。因此,1.5GB 分配失败。
在 vs 项目设置中启用大地址空间标志,它最高可达 4GB。
在此之上,程序需要以 64 位构建。
评论
Debug -> Windows -> Modules