程序执行顺序莫名其妙并且每次执行到某一步会退出?

liangyuegang 2015-05-15 05:36:04
void CPageVisit::OnKillfocusEdit()
{
if (haveeditcreate == true)//如果之前创建了编辑框就销毁掉
{
destroyEdit(&m_visitplan, &m_Edit, e_Item, e_SubItem);//销毁单元格编辑框对象
haveeditcreate = false;
CString bvcontent,bvdate,bvplan;
bvcontent=m_visitplan.GetItemText(e_Item,e_SubItem);
bvplan=m_visitplan.GetItemText(e_Item,e_SubItem-1);

CTime date;
m_visitdate.GetTime(date);
bvdate=date.Format(_T("%Y/%m/%d"));//获得回访日期

if(!bvcontent.IsEmpty())
{
//更新VISITRECORDDT表
CBackVisitApp* app=(CBackVisitApp*)AfxGetApp();
sqlite3* conn = NULL;
if (sqlite3_open((LPSTR)(LPCTSTR)app->m_dbfname,&conn)!=SQLITE_OK)
{
sqlite3_close(conn);
MessageBox(_T("数据库打开失败!"));
return;
}
sqlite3_stmt *stmt;
char sqlupdate[400];
sprintf(sqlupdate,"UPDATE VISITRECORDDT SET BVCONTENT='%s' WHERE ID='%s' AND BVDATE='%s' AND BVPLAN='%s'",bvcontent,m_id[e_Item],bvdate,bvplan);
int len = strlen(sqlupdate);

if (sqlite3_prepare_v2(conn,sqlupdate,len,&stmt,NULL) != SQLITE_OK)
{
if(stmt)
sqlite3_finalize(stmt);
//CString err=sqlite3_errmsg(conn);
sqlite3_close(conn);
return ;
}
if (sqlite3_step(stmt) != SQLITE_DONE) {
sqlite3_finalize(stmt);
sqlite3_close(conn);
return;
}
sqlite3_finalize(stmt);
sqlite3_close(conn);
MessageBox(_T("更新成功!"));
}
}

调试时 程序执行到destroyEdit(&m_visitplan, &m_Edit, e_Item, e_SubItem);会重新跳到最开始if (haveeditcreate == true)这里,然后再往下执行,接着执行到sprintf(sqlupdate,"UPDATE VISITRECORDDT SET BVCONTENT='%s' WHERE ID='%s' AND BVDATE='%s' AND BVPLAN='%s'",bvcontent,m_id[e_Item],bvdate,bvplan); 就直接退出,莫名其妙啊,求解啊
...全文
111 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
worldy 2015-05-19
  • 打赏
  • 举报
回复
代码重入了吧
处处留心 2015-05-19
  • 打赏
  • 举报
回复
有可能是执行的代码与源代码不一致 修改配置,重新编译
用户 昵称 2015-05-19
  • 打赏
  • 举报
回复
确保你调用的那个函数没把变量、堆栈冲乱?
Eleven 2015-05-19
  • 打赏
  • 举报
回复
你Rebuild All一下,然后重新Debug下调试一下看看~
赵4老师 2015-05-19
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。
Sandrer 2015-05-19
  • 打赏
  • 举报
回复
我试过这情况,是内存有问题!! 估计你也是一样的问题,如果不是,我自切楼下jj

16,472

社区成员

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

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

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