在程序中写了一个线程。按F5,开始程序运行现象都还正常,可到最后出现:Unhandled exception in MultiThread.exe: 0xC0000005:Access Violation。然后指向WINMAIN.CPP中的:
if (pThread->m_pMainWnd != NULL)
{
TRACE0("Warning: Destroying non-NULL m_pMainWnd\n");
pThread->m_pMainWnd->DestroyWindow();
}
接下来,如果将控件关联上变量,程序就再也无法运行了。
请大侠们指教,问题到底出在哪呢?
if (pThread->m_pMainWnd != NULL)
{
TRACE0("Warning: Destroying non-NULL m_pMainWnd\n");
pThread->m_pMainWnd->DestroyWindow();
}
接下来,如果将控件关联上变量,程序就再也无法运行了。
请大侠们指教,问题到底出在哪呢?
确保你的线程创建的窗口销毁后,才退出线程。
上述问题出在我在CMultiThreadDlg类中多定义了一个CDC成员变量,在程序中却没有用到。删除即可
现在还存在一个问题,希望大侠们释疑:
给控件关联变量后,再次出现Access Violation。指向BOOL CMultiThreadApp::InitInstance()的m_pMainWnd = &dlg;
我将该句置为无效后,就可以关联变量了,程序运行也没有出现任何异常。
请问这是为什么?删除“m_pMainWnd = &dlg;"会不会导致其它问题的出现?