环境:EVC++3.0
1.用SOCKET的API写了一个类声明为全局类的静态成员,并为该类定义了回调函数ONSockRead在接收数据时调用
2.在窗口DlgLogin中定义了静态成员函数OnRead,并将OnRead赋给回调函数ONSockRead以在窗口中接收数据
3.DlgLogin的OnRead函数接收到SOCKET数据时执行DlgMain.DoModal()调出另一窗口时运行时出错:"Assertion Failed! :File wincore.cpp Line 1042"
求解决方法或思路
1.用SOCKET的API写了一个类声明为全局类的静态成员,并为该类定义了回调函数ONSockRead在接收数据时调用
2.在窗口DlgLogin中定义了静态成员函数OnRead,并将OnRead赋给回调函数ONSockRead以在窗口中接收数据
3.DlgLogin的OnRead函数接收到SOCKET数据时执行DlgMain.DoModal()调出另一窗口时运行时出错:"Assertion Failed! :File wincore.cpp Line 1042"
求解决方法或思路
解决方案 »
- win7,Server2000利用ADO连接数据库的兼容性问题
- 刚刚转正,觉得主管给我的任务有点少,是不是该提出来?
- WindowsDDK中的Mirror例子在哪?
- 请教:在mdb文件中,怎么把表名字满足某个特定条件的表挑出来
- 如何使用Microsoft ADO Data Control控件 调用存储过程
- 几个小问题,请高手解答
- 点击窗口的最小化按扭,窗口会收到什么消息?我需要在窗口最小化时处理一些东西。
- 请问高手,一般用什么表格控件,请推荐一下!
- 怎样实现在一个SDI程序运行之前,先出现一个窗体,几秒之后,他消失,程序正常运行
- 关于加亮的代码块如何左右移动的问题?
- 怎样才能让程序采集100秒的数,100后自动停止?大家帮帮忙,挺急的.
- 为什么我的csocket只能accept一次?
{
if (m_hWnd == NULL)
return; // null (unattached) windows are valid // check for special wnd??? values
ASSERT(HWND_TOP == NULL); // same as desktop
if (m_hWnd == HWND_BOTTOM)
ASSERT(this == &CWnd::wndBottom);
else if (m_hWnd == HWND_TOPMOST)
ASSERT(this == &CWnd::wndTopMost);
else if (m_hWnd == HWND_NOTOPMOST)
ASSERT(this == &CWnd::wndNoTopMost);
else
{
// should be a normal window
ASSERT(::IsWindow(m_hWnd)); // should also be in the permanent or temporary handle map
CHandleMap* pMap = afxMapHWND();
ASSERT(pMap != NULL); CObject* p;
1042行 ASSERT((p = pMap->LookupPermanent(m_hWnd)) != NULL ||
(p = pMap->LookupTemporary(m_hWnd)) != NULL);
1043行 ASSERT((CWnd*)p == this); // must be us
}
}
{
CAsiaatum_QCDlg *dlg = (CAsiaatum_QCDlg *)pWnd; if (strncmp(buf, "[LOGIN:OK][1]", 13) == 0)
{
dlg->PostMessage(WM_LOGIN, 1, 0);
dlg->m_ctrl_login.EnableWindow(FALSE);
}
else if (strncmp(buf, "[LOGIN:OK][2]", 13) == 0)
{
dlg->PostMessage(WM_LOGIN, 2, 0);
dlg->m_ctrl_login.EnableWindow(FALSE);
}
}LRESULT CAsiaatum_QCDlg::OnLogin(WPARAM wParam, LPARAM lParam)
{
if ((int)wParam == 1)
{
AfxGetMainWnd()->SetWindowText(_T("不良记录(质检)"));
QCDlg = new CCheckQC(NULL);
QCDlg->Create(IDD_CHECKQC, NULL);
QCDlg->ShowWindow(SW_SHOW);
}
else if (...)
{
...
}
}