为什么在release版中会出现Unhandled exception?

cuitcir 2004-11-05 10:59:24
因为对话框拖放的编辑控件和旋转按钮太多,所以采用将消息集中处理,在debug版就没错误,而在release就总是出现错误,提示unhandled exception in Test.exe:0xc0000005:Acess Violation,奇怪!!!是什么原因?
下面就是其中的代码:
----------------------------------------------------
ON_CONTROL_RANGE(EN_CHANGE,IDC_P1,IDC_P48,TimeEditChange)//编辑控件消息映射
ON_NOTIFY_EX_RANGE(UDN_DELTAPOS,IDC_S1,IDC_S48,SpinChange)//旋转按钮消息映射
IDC_P1~IDC_P48和IDC_S1~IDC_S48中ID值是小到大顺序编排

----------------------------------------------------
CEdit *pP;
CSpinButtonCtrl *pS;
for(int i=0;i<48;i++)
{
pP=(CEdit*) GetDlgItem(IDC_P1+i);
pS=(CSpinButtonCtrl*) GetDlgItem(IDC_S1+i);
pP->SetWindowText("00");//在这里附近就出现错误
if(i%2==0) pS->SetRange(0,23);
else pS->SetRange(0,59);
pS->SetPos(0);
}
...全文
200 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
iamzxx 2004-12-06
  • 打赏
  • 举报
回复
传递空指针,或字符串长度不够,都有可能在DEBUG时没问题,RELEASE中出错
Nizvoo 2004-11-06
  • 打赏
  • 举报
回复
设置提示框看是哪个地方具体出错,一步步排除.
cuitcir 2004-11-06
  • 打赏
  • 举报
回复
这个我早就试过,不是这个原因的.
开头我以为是机子问题,但换过另一台还是一样
我找了很久也找不到哪里出问题,怀疑是VC将消息集中处理时有bug.
Atomictry 2004-11-06
  • 打赏
  • 举报
回复
1. 先Clean, 然后重新编译, 也许就好了。
2. 同Nizvoo(塞朴拉斯).
Magnus 2004-11-05
  • 打赏
  • 举报
回复
你能保证GetDlgItem(IDC_P1+i)返回的指针有效吗?
一定要检查的,
GetDlgItem()其实只是对消息处理的简单封装,
当你发送给可能并不存在的pP窗口指针时,并不会崩溃。
cuitcir 2004-11-05
  • 打赏
  • 举报
回复
哪有pP=null?
pP=(CEdit*) GetDlgItem(IDC_P1+i);//这句已指向控件,已不为空
flyelf 2004-11-05
  • 打赏
  • 举报
回复
pP=null,当然有异常了
flyelf 2004-11-05
  • 打赏
  • 举报
回复
pP=null,当然有异常了
Magnus 2004-11-05
  • 打赏
  • 举报
回复
抛出异常,
却没有处理,

16,472

社区成员

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

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

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