DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 542 评论 :: 1615万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

两种方法在Visual Studio Win32控制平台程序中使用超过4G的内存(以Visual Sutdio 2013为例)

如果你的程序运行中由于申请大空间而抛出了bad alloc异常,那这篇文章提出的两个方法将对你有些帮助。

捕获异常的方法很简单: try { your code...} catch (exception e) {cerr << e.what() << endl;}

 

1: 启用大地址

在解决方案资源管理器中右键点击项目->属性,选择连接器->系统->启用大地址。(不超过4G,由于还有系统,所以最多也就能申请3.x G)

 

2、64bit 系统可以选择X64平台突破内存限制

32bit系统的有4GB内存限制,因为地址是32位使得这个地址所能代表的内存空间也就 2^32 byte = 4 GB。

如果你的系统是64bit则没有4GB的限制,Visual Studio虽然只有32bit版的,但是它提供了64bit的平台编译,我们所要做的只是选择程序的编译平台是X64。

方法如下: 依旧调出属性页,右上角配置管理器,活动解决方案平台->新建,新窗口选择X64平台,之后顺着它操作就行了。

添加完的页面如下,关闭即可。

 

(有条件就升级64bit系统吧。)

 

author: YuManZi

when catching bad-alloc exception, following two way may help you, if you are developing visual studio win32 console project. 

 

Two ways to use large main memory for Microsoft Visual Studio Win32 Console  Project

1: use /LARGEADDRESSAWARE

right click your project in Solution Explorer->Properties, Linker->System, select  /LARGEADDRESSAWARE in use large address.

 

2: change platform to X64(64 bit), instead of ARM(32bit)

As we all known, 32 bit system has a memory limitation of 4GB(=2^32 bytes), so we can change to X64 platform for those 64 bit system users to avoid such a memory limitation. 

still call the Properties window for your project, click  Active Solution Platform, New, select X64 instean ARM for new platform.

posted on   DoubleLi  阅读(1661)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2018-01-08 Web开发环境搭建 Eclipse-Java EE 篇
2018-01-08 Java EE 开发环境搭建
2018-01-08 JavaWeb开发Eclipse环境配置--史上最详细的教程
2013-01-08 CListCtrl获取当前选中行索引号
2013-01-08 C++ clock()函数实现功能介绍
2013-01-08 c++计算代码执行时间的方法,毫秒级
2013-01-08 C++高精度实现计算程序运行时间
点击右上角即可分享
微信分享提示