debug下正常。release有问题??

terran_ye 2007-08-20 10:03:14
做的是转换文件部分

比如 把 a.111 转换到指点目录下。 并变成 a.222
(导入过程能把指定的文件扩展名直接转换到目标文件夹)

加了个listbox。原来显示文件。还有2个单选按钮

(选择是整个文件夹导入。还是选择的文件导入。)

不管整个文件夹目录下导入。和选择的文件导入。都添加到一个链表。然后挨个
转换导入。调用的函数一摸一样。

可是在文件的是否只读上有问题。

比如a.111 原来的属性是只读的。转换成a.222后也要是只读的。
a.111非只读的话。转换成a.222也要非只读的

此情况在debug下完全正常。不过在release下。选择导入指定的文件夹也正常。
不过选择导入选择的文件夹时除了问题,不管原来是否有只读属性的文件。都变成了
只读???


请问各位大侠。为什么?想了好久了。在线等回复。谢谢大家



...全文
312 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
terran_ye 2007-08-21
  • 打赏
  • 举报
回复
谢谢。
qiangv 2007-08-20
  • 打赏
  • 举报
回复
这种问题强烈建议检查你的变量!!!

debug会自动为你赋初值
release不会!!!
zx_sanjin 2007-08-20
  • 打赏
  • 举报
回复
Debug模式调试器会对变量赋初值,比如char c,c的值就是0xcc之类的值
Release模式不会对变量赋初值,比如char c,c的值是系统内存中的原来的值,此时如果直接使用c,那么就会发生意想不到的事情,所谓的不稳定现象

比如 if (c > 0) 那么程序的条件会如何执行无法预测


Debug、Release的问题很多都是由于以上原因导致的,所以在对变量使用之前一定要注意是否有初值
long2icc 2007-08-20
  • 打赏
  • 举报
回复
没碰到过这种情况,帮你up了!
一般来说,debug没问题,release有问题的话,99%是代码中有问题,比如缓冲区大小不够,数组没有初始化之类,等等。
xia_wu619 2007-08-20
  • 打赏
  • 举报
回复
我以前也遇到过Debug好用,release下不好用的情况,当时调查的结果是因为有一个变量没有进行初始化,在Debug下它会自动初始化,但是热lease下就不行,这只是我曾经做过的,对于当前你的这个情况,我没看到代码,不知道会不会存在这个问题,仅供参考~~
liuxiuk 2007-08-20
  • 打赏
  • 举报
回复
注销下机子
---
再编译试试
ti3000 2007-08-20
  • 打赏
  • 举报
回复
Debug和Release的主要区别在于编译环境的参数设置
VC6.0 工程菜单〉〉设置
在对话框左上的下拉框选择“Win32 Debug”和“Win32 Release”,
再选右边的Link标签,比较一下“对象/库模块”中的文件名称是否相同,
Release缺少的要补上(注意空格)
我遇到的 Debug通过编译而Release不能通过,大都是这种情况。

至于变量是否初始化取决于“c/c++”标签中的 警告级别 优化 的设置,
注意如果你把Debug和Release的 警告级别 优化 等,设置的相同
那编译出的东西也就是相同的了,就没有意义了。

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧