社区
硬件/系统
帖子详情
Release/Debug版本生成的应用的不同?
QQSEVEN
2003-06-23 11:08:57
Release/Debug版本生成的应用的有什么不同?
为什么有些程序在Release版本下可以通过,而在Debug版本下不可以呢?
...全文
38
3
打赏
收藏
Release/Debug版本生成的应用的不同?
Release/Debug版本生成的应用的有什么不同? 为什么有些程序在Release版本下可以通过,而在Debug版本下不可以呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
argone168
2003-07-01
打赏
举报
回复
So Good!
penter
2003-07-01
打赏
举报
回复
回复人: CQP(悄悄的我走了,正如我悄悄的来) ( ) 信誉:100 2003-7-1 12:19:25 得分:10
关于debug和release的不同的两点讨论 - (1.5kg, shanghai, 15:39 2002-12-20)
======================================================
在使用VC开发软件的过程中,正当要享受那种兴奋的时候突然发现:release与debug运行结果不一致,甚至出错,而release又不方便调试,真的是当头一棒啊,可是疼归疼,问题总要解决,下面将讲述一下我的两点经验,看看是不是其中之一:
1. 变量。
大家都知道,debug跟release在初始化变量时所做的操作是不同的,debug是将每个字节位都赋成0xcc,而release的赋值近似于随机(我想是直接从内存中分配的,没有初始化过,但debug为什么不是0xff或0x00或其他什么的就不得而知了)。这样就明确了,如果你的程序中的某个变量没被初始化就被引用,就很有可能出现异常:用作控制变量将导致流程导向不一致;用作数组下标将会使程序崩溃;更加可能是造成其他变量的不准确而引起其他的错误。所以在声明变量后马上对其初始化一个默认的值是最简单有效的办法,否则项目大了你找都没地方找。代码存在错误在debug方式下可能会忽略而不被察觉到,如debug方式下数组越界也大多不会出错,在release中就暴露出来了,这个找起来就比较难了:( 还是自己多加注意吧
2. 自定义消息的消息参数。
MFC为我们提供了很好的消息机制,更增加了自定义消息,好处我就不用多说了。这也存在debug跟release的问题吗?答案是肯定的。在自定义消息的函数体声明时,时常会看到这样的写法:afx_msg LRESULT OnMessageOwn(); 当你在多线程或进程间使用了消息传递时就会导致无效句柄之类的错误。这个原因就是消息体的参数没有添加,即应该写成:afx_msg LRESULT OnMessageOwn(WPARAM wparam, LPARAM lparam); (具体原因我也不太清楚,是不是因为调用时按着默认的参数多分配了WPARAM+LPARAM的空间而破坏了应用程序的内存空间?还请高手多指点)
避免的方法:
1. 注意变量的初始化
2. 自定义消息的标准写法
3. 使用调试语句TRACE等时使用后最好注释掉
4. 尽量使用try - catch(...)
======================================================
POSONE
2003-06-30
打赏
举报
回复
debug 中包含在量调试信息
C++动态库*.dll文件的
Debug
/
Release
版本
是否可以混用(交叉用)?
比如
debug
的exe调用
release
编译
生成
的dll的函数,参数如果使用stdvector或者stdstring之类的东西,肯定会崩。含有stl的
debug
动态库和
release
动态库在项目中不能混用,
debug
项目必须用
debug
库,
release
项目必须用
release
库;,会分别
生成
debug
和
release
的dll,在exe中必须要引用指定
版本
的dll,不能混用,否则会出错;只提供给用户
release
的dll,用户的
debug
版和
release
版的exe都可以引用此dll。...........
VS 编译
Debug
/
Release
时添加引用
Debug
|
Release
版本
的dll
公司一些早期的项目,把所有工程都放到一个解决方案下了,导致整个解决方案编译很慢,而且也不便于类库的复用和维护。因此我们决定把工程按照功能划分到
不同
的解决方案里头,然后定期发布dll到TFS配置库上固定的TeamProject下面,以后
应用
程序引用时就不添加工程,而是采用添加dll的方式。但是现在遇到一个问题,发布dll一般会发布
Debug
和
Release
两个
版本
,那么
应用
程序应该引用哪个
版本
呢?
[转]动态库*.dll文件的
Debug
/
Release
版本
是否可以混用(交叉用)?
含有stl的
debug
动态库和
release
动态库在项目中不能混用,
debug
项目必须用
debug
库,
release
项目必须用
release
库;使用一些第三方的dll,比如opencv,会分别
生成
debug
和
release
的dll,在exe中必须要引用指定
版本
的dll,不能混用,否则会出错;但是还有一些第三方的dll,比如halcon,只提供给用户
release
的dll,用户的
debug
版和
release
版的exe都可以引用此dll。dll在
debug
和
release
模式下如何交叉引用?...
关于
release
和
debug
版本
不能混用的教训
之前改老师写好的MFC的一个图像类的lib库,重新
生成
之后,调用lib的项目一直报错。错误如下: 大致就是检测到lib文件里各种.obj不匹配。 找了蛮久问题,后来发现是
版本
不兼容的问题。 vs中的工程有
debug
和
release
两个
版本
,我的lib库项目用
debug
版本
编译,调用的项目是用
release
版本
编译的。 需要强调一下: 静态链接库的
生成
与使用需要用相同
版本
。 为什...
Android Studio项目打包:2、打包说明
release
和
debug
版本
的区别、v1和v2的签名使用等等
android中导出签名的,apk的
release
和
debug
版本
的区别 (1)
debug
签名的
应用
程序不能在Android Market上架销售,它会强制你使用自己的签名;
Debug
模式下签名用的证书(默认是Eclipse/ADT和Ant编译)自从它创建之日起,1年后就会失效。 (2)
debug
.keystore在
不同
的机器上所
生成
的可能都不一样,就意味着如果你换了机器进行apk
版本
升级,那...
硬件/系统
2,640
社区成员
17,239
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章