help!Debug Assertion Failed line:639

toucher 2006-12-19 12:01:53
小弟现在在做个ODBC连接access的程序.我原来都好好的,就是数据库加了一列后,我就改了下对应的Recordset,给他增加一个变量,后来点view ->classWizard后就有个对话框问我什么被修改了之类的,我点确定后运行就有这个错误了.
File:wincore.cpp
line:639
调试发现整个对话框都能调过,就是显示不出来.在错误框按重试进入到wincore.cpp,是这个语句调不了:ASSERT(pWnd->m_hWnd == NULL);但我还是一点头绪都没有,不知道怎么改.
我把wincore.cpp出错那个函数也贴出来:
void AFXAPI AfxHookWindowCreate(CWnd* pWnd)
{
_AFX_THREAD_STATE* pThreadState = _afxThreadState.GetData();
if (pThreadState->m_pWndInit == pWnd)
return;

if (pThreadState->m_hHookOldCbtFilter == NULL)
{
pThreadState->m_hHookOldCbtFilter = ::SetWindowsHookEx(WH_CBT,
_AfxCbtFilterHook, NULL, ::GetCurrentThreadId());
if (pThreadState->m_hHookOldCbtFilter == NULL)
AfxThrowMemoryException();
}
ASSERT(pThreadState->m_hHookOldCbtFilter != NULL);
ASSERT(pWnd != NULL);
ASSERT(pWnd->m_hWnd == NULL); // only do once
//就是上面这条语句出错**********
ASSERT(pThreadState->m_pWndInit == NULL); // hook not already in progress
pThreadState->m_pWndInit = pWnd;
}
...全文
368 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
toucher 2006-12-21
  • 打赏
  • 举报
回复
解决了,原因应该是这样吧:
Elysium(東鱗覀爫) ( ) 信誉:100 Blog 2006-12-19 16:08:50 得分: 0



vc自动维护了某些东西...手动改了,而又没有改好的后果

我重新写了个加了个Recordset就好了,真没想到给Recordset增加变量后居然会影响到:pWnd->m_hWnd ,这点就还是搞不清楚,先在这谢Elysium了 

zcp126 2006-12-20
  • 打赏
  • 举报
回复
你是怎么加的?我的怎门可以啊?
toucher 2006-12-19
  • 打赏
  • 举报
回复
recordset修改都正常,我都可以用它来读写了,只是后来点view ->classWizard后就有个提示我说那个修改之类的东西后,之后我在对话框拉个时间控件,也都还可以运行,然后给这个时间空间加个OnCloseup消息函数,就不行了,我其他东西都没修改过啊,调了一个上午了,也不知道要怎么修改,各位帮帮忙.还有,我这个是一个Dialog,里面的OnInitDialog函数都能调过,之后才弹出这东西的.
zcp126 2006-12-19
  • 打赏
  • 举报
回复
是不是在view还没有构造时就用了它的指针了。
Elysium 2006-12-19
  • 打赏
  • 举报
回复
还有构造函数初始化值
Elysium 2006-12-19
  • 打赏
  • 举报
回复
如果是用向导生成的recordset,类中的字段变量,对应于formview下的编辑框,编辑框成员变量,DDX_DoDataExchange等,你检查下输入框以及类成员函数及变量
wsb_8224 2006-12-19
  • 打赏
  • 举报
回复
检查一下pWnd->m_hWnd看是不是满足 ASSERT(pWnd->m_hWnd == NULL);
toucher 2006-12-19
  • 打赏
  • 举报
回复
各位知道的帮下忙,急啊,这个没解决这两天都做不了事了
toucher 2006-12-19
  • 打赏
  • 举报
回复
请高手帮帮忙,现在的问题具体知道了,就是只要给时间控件加个控制变量就马上有上面那个错误,没加时就不会.
toucher 2006-12-19
  • 打赏
  • 举报
回复
现在跟recordset没关系了,因为只要我删除掉那个时间控件变量就没事了.
Elysium 2006-12-19
  • 打赏
  • 举报
回复
你在工程中查找原来recordset里面的成员变量,看看它都出现在那些文件中,然后照着样子逐一添加,修改
toucher 2006-12-19
  • 打赏
  • 举报
回复
我那个加的那个变量不是手动加的,是通过ClassWizard自动生成的
toucher 2006-12-19
  • 打赏
  • 举报
回复
那这样该怎么办啊?加个时间控件,肯定要给它加个变量的呀,可是加了后又弹出错误框框出来了
Elysium 2006-12-19
  • 打赏
  • 举报
回复
vc自动维护了某些东西...手动改了,而又没有改好的后果
toucher 2006-12-19
  • 打赏
  • 举报
回复
我刚刚把那个时间控件的CDateTimeCtrl变量给删除,居然就没事了,大家说下什么原因啊

4,012

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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