!debug assertion failed
紧急求助!!!debug assertion failed
debug assertion failed!
program:E:\程序\123\debug\123.exe
file:dlgdata.cpp
Line:43
for imformation on how your program can cause on assertion failure,see the visual c++ documentation on asserts.
(press retry to debug the application)
程序本来在一台机器上运行的没问题,换了台机器一运行就弹出这个错误提示,
设置断点后弹出错误提示,并停在下面函数的断点处,
void CMy123Dlg::choice21(ganying gy,double a,double b,double c,double d)
{
switch(m_radio1)
{
case 0: if(gy.m_trafficerror>=a&&gy.m_speederror>=b)
{
gy.m_flag=1;
//MessageBox("ganying");
}
else if(gy.m_trafficerror<a)
{
gy.m_flag=0;
//MessageBox("不满足特殊路段流量精度要求");
}
else if(gy.m_speederror<b)
{
gy.m_flag=0;
//MessageBox("不满足特殊路段车速精度要求");
}
break;
case 1: if(gy.m_trafficerror>=c&&gy.m_speederror>=d)
{
gy.m_flag=1;
//MessageBox("ganying");
}
else if(gy.m_trafficerror<c)
{
gy.m_flag=0;
//MessageBox("不满足非特殊路段流量精度要求");
}
else if(gy.m_speederror<d)
{
gy.m_flag=0;
//MessageBox("不满足非特殊路段车速精度要求");
}
break;
}
}
然后点忽略,又跳到下面这个红色表示的语句ASSERT(FALSE);请高手指教,是什么错误啊?怎么修改?
HWND CDataExchange::PrepareCtrl(int nIDC)
{
ASSERT(nIDC != 0);
ASSERT(nIDC != -1); // not allowed
HWND hWndCtrl;
m_pDlgWnd->GetDlgItem(nIDC, &hWndCtrl);
if (hWndCtrl == NULL)
{
TRACE1("Error: no data exchange control with ID 0x%04X.\n", nIDC);
ASSERT(FALSE);
AfxThrowNotSupportedException();
}
m_hWndLastControl = hWndCtrl;
m_bEditLastControl = FALSE; // not an edit item by default
ASSERT(hWndCtrl != NULL); // never return NULL handle
return hWndCtrl;
}
------解决方案--------------------
这是一个断言错误
不懂你需要红色的代码有什么用?
------解决方案--------------------
那说明 hWndCtrl == NULL 了。
debug assertion failed!
program:E:\程序\123\debug\123.exe
file:dlgdata.cpp
Line:43
for imformation on how your program can cause on assertion failure,see the visual c++ documentation on asserts.
(press retry to debug the application)
程序本来在一台机器上运行的没问题,换了台机器一运行就弹出这个错误提示,
设置断点后弹出错误提示,并停在下面函数的断点处,
void CMy123Dlg::choice21(ganying gy,double a,double b,double c,double d)
{
switch(m_radio1)
{
case 0: if(gy.m_trafficerror>=a&&gy.m_speederror>=b)
{
gy.m_flag=1;
//MessageBox("ganying");
}
else if(gy.m_trafficerror<a)
{
gy.m_flag=0;
//MessageBox("不满足特殊路段流量精度要求");
}
else if(gy.m_speederror<b)
{
gy.m_flag=0;
//MessageBox("不满足特殊路段车速精度要求");
}
break;
case 1: if(gy.m_trafficerror>=c&&gy.m_speederror>=d)
{
gy.m_flag=1;
//MessageBox("ganying");
}
else if(gy.m_trafficerror<c)
{
gy.m_flag=0;
//MessageBox("不满足非特殊路段流量精度要求");
}
else if(gy.m_speederror<d)
{
gy.m_flag=0;
//MessageBox("不满足非特殊路段车速精度要求");
}
break;
}
}
然后点忽略,又跳到下面这个红色表示的语句ASSERT(FALSE);请高手指教,是什么错误啊?怎么修改?
HWND CDataExchange::PrepareCtrl(int nIDC)
{
ASSERT(nIDC != 0);
ASSERT(nIDC != -1); // not allowed
HWND hWndCtrl;
m_pDlgWnd->GetDlgItem(nIDC, &hWndCtrl);
if (hWndCtrl == NULL)
{
TRACE1("Error: no data exchange control with ID 0x%04X.\n", nIDC);
ASSERT(FALSE);
AfxThrowNotSupportedException();
}
m_hWndLastControl = hWndCtrl;
m_bEditLastControl = FALSE; // not an edit item by default
ASSERT(hWndCtrl != NULL); // never return NULL handle
return hWndCtrl;
}
------解决方案--------------------
这是一个断言错误
不懂你需要红色的代码有什么用?
------解决方案--------------------
那说明 hWndCtrl == NULL 了。