使用场景:您自己的32位exe需要占用1. 6G内存。在Win7 64位环境中,由于系统内存限制,这些内存无法申请,并且发生崩溃!
//
我用自己的代码模板:
//第一步,进入目录
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build
//命令行执行,进入环境
vcvars32.bat
//命令行执行,设置32位exe操作大内存
editbin /largeaddressaware D:\Qt597\Demo.exe
//命令行执行,查询是否完成: Application can handle large (>2GB) addresses
dumpbin /headers D:\Qt597\Demo.exe
//
临时解决方法如下:
//
参考网址如下:
关于c#在vs2013 x86平台上打开大内存
解决32位程序2G内存限制的方法
使用Visual Studio为X86程序打开大内存
主要内容转载如下:
注意
1.表示内存已成功打开:在查看结果的“文件头值”段落中,将出现“应用程序可以处理大(> 2G)地址”字样;
2.重新编译程序时,原始的大内存信息将丢失,所有的信息都需要重新启动;
3.在程序中,您只需要打开可执行文件的大内存,而无需打开其他文件(非可执行文件)。
1问题描述
目前,该公司的许多程序都需要以32位模式运行,并且某些项目的相关系统容易出现内存溢出问题,并且系统在使用过程中不稳定。通过分析可以得出结论,默认情况下,32个程序的内存地址空间仅为2G。除了存储程序数据内,但有时我们需要开发大于2GB的程序。如何突破这个限制?
vs2013的安装目录中有一个程序可以修改此限制,具体方法如下:
1.以管理员身份运行VS2013开发人员命令提示符工具。可以在VS安装目录中找到此工具。当然,您也可以直接使用cmd。
2.打开“ editbin.exe”所在的目录。该文件位于VS安装目录中。
3.输入:editbin / largeaddressaware $(TargetPath)
您如何知道已成功打开大内存模式? VS安装目录中有一个dumpbin.exe工具。该工具可以查看exe文件的许多属性。
在与上述相同的目录中输入dumpbin / headers可执行文件
如果您看到以下消息,则表明启动成功
如果没有成功,也可以使用以下方法:
1.打开项目属性,然后单击“生成事件”选项卡
2.在后代事件命令行中输入:editbin / largeaddressaware $(TargetPath)(以上路径必须为完整路径)
尽管此修改已突破2GB的限制,但无法突破4GB的限制。这是因为x86的寻址范围如此之大
如果程序超出4GB限制,则需要将其修改为64平台。 64个平台理论上可以支持2 ^ 64 = 16EB。当前64位win7支持最大128GB。如果您确实不想更改为64,也可以尝试使用内存映射文件和虚拟内存方法。请参考具体内容
以上为参考内容,感谢大家的分享!
---------------------
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-360145-1.html
跑到浙江这些粗制滥造的工厂去
马总