VC++6.0 Debug模式与Release模式的区别

VC++ 如何发布程序(即release版本程序) 编了这么多程序却不知道如何发布,实在汗颜。大家都知道VC编译默认生成debug版本的程序,但是debug版本程序无法运行在没有安装VC的电脑上,这就要就我们生成release版本的程序,因为release版本在未安装VC的电脑上也能运行。 那么如何用VC++ 6.0发布程序1、首 阅读详情

    今日开会,老高谈及了VC++6.0中有关Debug与Release的不同。简单的就不说了,最重要的是Debug模式下变量的地址是固定的,而Release模式的变量地址则不然。归根到底,是由于Debug模式的变量地址由VC编译器负责分配,而Release模式的变量地址是由操作系统分配的。这也解释了为什么在Debug模式时可以运行的程序,在Release模式下可能根本无法执行。

    我目前做的项目也遇到过此类问题,当时并未在意,今日听老高一席话,方明白个中缘由。至于当时怎么修改的这个bug我也无从知晓。故从网上搜集以下资料,以备将来需要:

 


 

 

一般来讲,发布版对代码进行了一定的优化;  
        两种版本之间最主要的不同之处在于调试版能发现多种内存错误,而发布版不能,还有,调试版允许对内存的写操作有四个字节的上溢出和四个字节的下溢出,对程序不会有任何影响,然而同样的错误在发布版中就会导致内存破坏。  
         
        发布版是可以调试的,你跟踪一下;要调试发布版,要进行一定的设置以为发布版创建调试符号(就是生成PDB文件),可作如下设置:  
        1、在"Project"中选择"Settings",打开工程设置对话框;  
        2、在Debug   Info下选择Program   Database  
        3、在Link标签里选择Debug类。然后选择Debug   Info和Microsoft   Format选项;
并在Project   options对话框的最后加上“/OPT:REF”  
        4、重新编译(Rebuild   All)整个工程。    
  这样就可以对发布版进行调试了! 

 

 

VC++ 6.0 Build配置中没有Release的解决办法 在VC6.0中添加Release配置的步骤。 阅读详情

相关推荐

VC++6.0debug使用技巧/编译时出错示例与原因分析

本篇是笔者使用VC++6.0时的经验小总结,内容包括debug使用技巧/编译时出错示例与原因分析,对看VC++6.0错误信息感到头痛的朋友应该会很有帮助!

VC Debug与Release区别

Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用,我们使用的软件都是Release版本的。Debug 和 Release 并没有本质的

MoreWindows Blog 1万+

高效打卡系统设计:从行为心理学到实践工具

打卡系统作为现代时间管理的重要工具,其核心原理植根于行为心理学中的即时反馈机制和习惯养成理论。通过科学设计的打卡周期和可视化反馈,能有效提升个人自律性和目标达成率。在技术实现上,从纸质记录到数字化工具(如Notion、Excel自动化模板)的演进,为不同场景提供了灵活解决方案。特别在习惯追踪和进度管理领域,结合热力图生成、数据统计等技巧,打卡系统能转化为强大的自我监督工具。本文通过实践案例,详解如何构建兼顾弹性和约束力的个性化打卡方案,帮助读者突破'三天打鱼两天晒网'的常见困境。

weixin_30047059的博客 336

Visual Studio 中 Debug 和 Release 的区别;生成、清理项目、调试、开始执行等之间的区别

Visual Studio 中 Debug 和 Release 的区别;生成、清理项目、调试、开始执行等之间的区别

m0_51913750的博客 1万+

ABP框架实战:从零搭建多租户应用(含完整代码示例)

本文详细介绍了如何使用ABP框架从零构建多租户SaaS应用,涵盖多租户架构设计、数据隔离实现、租户管理及性能优化等核心内容。通过完整的代码示例,帮助开发者快速掌握企业级数据隔离系统的开发技巧,提升SaaS应用开发效率。

weixin_29247219的博客 262

MAX30102心率血氧传感器

估算AC、DC值的方法如下:找两个波谷点,两个波谷点之间有一个波峰点,两个波谷点相连成一条直线,与Y轴平行的线穿过波峰点会与两个波谷点连接成的直线相交于一点,这个点就是DC点,DC点的Y轴对应值就是直流分量,AC分量的值为波峰点到DC点之间的差值。在医院测量中常用的一种血氧采集方式,如下图所示,光电传感器和光源分别置于手指的两侧,光源穿过手指被另一侧的光电二极管接收,根据光衰减量计算血氧浓度。那么,根据上面的Beer-Lambert 定理,针对测量的具体场景,测量过程的衰减为三层穿透物质衰减量的叠加。

qq_41861711的博客 1万+

VC6.0 debug和release的区别及如何设置

<br />[IDE环境使用]                                                                                                            <br />1、如何彻底删除一个类: <br />     选择FileView标签把相应的.cpp和.h删除,然后关闭工程,删掉.clw文件, <br /> 如果愿意,还可以把没用的.cpp和.h文件从硬盘删除。重新进入工程,按Ctrl+W, <br />

yangguang0501的专栏 1万+

使用Kolla部署多节点Rocky版本OpenStack

openstack命令行客户端使用,post-deploy会在 /etc/kolla/目录下生成文件admin-openrc.sh。每次使用openstack命令时执行source /etc/kolla/admin-openrc.sh(manager节点执行)source /etc/kolla/admin-openrc.sh (将文件内容复制到/etc/profile中,即可一直生效)3.2.2 开始安装kolla-ansible,要带上--ignore-installed PyYAML,否则可能会报错。

gyc1206的博客 1926

vc++6.0中debug和release

在vc中的菜单栏上,右键选着组件,便可把debug和release调出来,然后选择相应的编译方法,debug编译出来的文件是.dat文件,release编译出来的是.dll动态库文件。两种方法编译出来的并没有太大区别,但是在一些个别的电脑上可能会出现不能读取等bug,所以,如果需要dll文件,就直接使用release方法编译,来避免出现bug等问题。这种方法也是根据产品最后的发布需求来使用rele

SmtRobot的博客 1238

SpringBoot集成MinIO依赖冲突问题

场景一: 使用minio8.3.0版本的依赖,报下列异常: An attempt was made to call a method that does not exist. The attempt was made from the following location: io.minio.S3Base.<clinit>(S3Base.java:105) The following method did not exist: okhttp3.Requ...

qq_39974348的博客 1万+

49、Linux内核内存管理:MGLRU、DAMON与OOM杀手详解

本文详细解析了Linux内核内存管理中的三大核心机制:MGLRU(多代LRU)页面追踪与回收机制、DAMON数据访问监控工具及其在内存优化中的应用,以及OOM(内存不足)杀手的工作原理和触发方式。同时,文章还介绍了VM overcommit_memory策略的设置及其对内存分配的影响,帮助开发者和系统管理员更好地理解Linux内存管理机制,从而优化系统性能和稳定性。

dropout6artist的博客 107

VC++6.0 Debug调试

VC6.0Debug调试总结 1.       如何显示Debug工具栏窗口? ①:在任意工具栏的位置,单击鼠标右键,勾选Debug项     ②:Tools---->Customize--àToolbars--àDebug--àclose     引申:工具栏和工具条的

Crack The World 5716

QGis软件 —— 2、QGis加载在线地图两种方式(谷歌地图、天地图)

QGis软件 —— 2、QGis加载在线地图两种方式(谷歌地图)

1万+

【Visual C++】一些开发心得与调试技巧

自己平时收集的一些技巧与心得,这里分享出来,普及一下知识。        1.如何在Release状态下进行调试   Project->Setting=>ProjectSetting对话框,选择Release状态。C/C++标签中的Category选General,Optimizations选Disable(Debug),Debut info选Program Database。在Li

HI的专栏 453

运动控制软件:Siemens Sinamics二次开发_(6).通信接口与协议详解

PROFIBUSPROFINETModbus TCPCANopenEtherCAT每种通信接口都有其特定的应用场景和优势。选择合适的通信接口可以显著提高系统的性能和可靠性。在选择通信协议时,需要根据具体的应用场景和需求综合考虑。每种通信协议都有其特定的优势和局限性,因此在设计运动控制系统时,应选择最适合的协议,以确保系统的性能、可靠性、成本和维护性。通过以上对比和分析,希望开发者能够更好地理解和选择适合的通信接口和协议,从而优化运动控制系统的开发和应用。

2401_87715305的博客 898

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

对VC++下Debug模式和Release模式的简要分析

//////////////////////////////////////////////////////////////////////////////////////////////////////////////// 备注:本篇文章来自 vc驿站:http://www.cctry.co...

cigongbacheng1048的博客 383

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

VC++中Debug调试版本和Release发行版本的区别

VC++中Debug调试版本和Release发行版本的区别 引自:http://www.cnblogs.com/JemBai/archive/2009/01/13/1374805.html 在写代码过程中,发现 Debug 下运行正常,Release 下就会出现问题,百思不得其解,而Release 下又无法进行调试,于是只能采用printf方式逐步定位到问题所在处,才发现原来是给定的一

STELLAR0的专栏 3922

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

MSVC Debug 与 Release 库

或者这样生成的库或者exe程序名会多一个d字符。如下。

Wlk1229 1920

Debug模式和Release模式区别

VC6.0中的Debug模式和Release模式区别         Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。         debug跟release在初始化变量时所做的操作是不同的,debug是将每个字节位都赋成0xcc,

HI的专栏 3977

VC++中debug跟release编译模式的区别总结

根据网络上的文章总结,以备查询,:) [color=darkblue][b][size=x-large]Debug与Release版本的区别[/size][/b][/color] Debug 和 Release 并没有本质的区别,他们只是VC预定义提供的两组编译选项的集合,编译器只是按照预定的选项行动。如果我们愿意,我们完全可以把Debug和Release的行为完全颠倒过来。当...

JavaFans 227

VC6.0如何编译生成Release或Debug版本?

可以project->Set Active Config,选中release版本。此后,按F5或F7编译所得的结果就是release版本。----------------------------------------------------------------------------------------------------------------vc6.0在设置选了...

509

VC++ Release与Debug模式的区别

转自:http://blog.csdn.net/z397164725/article/details/7816932  Debug模式下正常,而Release模式下报错: 1、变量未初始化。 2、内存访问越界。 Release模式下正常,而Debug模式错误: 1、SendMessage发送消息响应。 WM_MYMSG消息响应通常有两种做法,一种是重载主对话窗的WindowPr

songhhll的专栏 1326

VC++6.0-在Release下实现单步调试

大家都知道,debug跟release在初始化变量时所做的操作是不同的,debug是将每个字节位都赋成0xcc(注1),而release的赋值近似于随机(我想是直接从内存中分配的,没有初始化过)。这样就明确了,如果你的程序中的某个变量没被初始化就被引用,就很有可能出现异常:用作控制变量将导致流程导向不一致;用作数组下标将会使程序崩溃;更加可能是造成其他变量的不准确而引起其他的错误。所以在声明变

pfnan的专栏 783
上一篇: Windows SDK之按钮文字对齐方式
下一篇: Windows SDK之WM_CREATE消息与WM_INITDIALOG消息的比较
leopardaa521
博客等级 码龄19年 64粉丝 48原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值