问题找到,不会解决,知道的来看看

枫青痕 2016-12-24 03:33:05
我直接上代码:


void CPCPlatformDlg::OnBnClickedBntCas3Key()
{
// TODO: 在此添加控件通知处理程序代码

m_pController = new CCas3Controller(&m_Protocol, 0xA0000001, this);
m_AppNumber = 0xA0000001;
m_uDlgId = IDD_DIALOG_CLT;
if (pCOpenProgres == NULL)
{
pCOpenProgres = new COpenProgres;
}

if (!pCOpenProgres ->GetSafeHwnd())
{
pCOpenProgres->Create(ID_SHOWPRO_DIALOG);
}
pCOpenProgres->ShowWindow(SW_SHOWNORMAL);
AfxBeginThread(RunAppThread, this);


}




UINT CPCPlatformDlg::RunAppThread(LPVOID pParam)
{


wResult = pthis->LoadApp(pthis->m_AppNumber);

if (wResult == RECEIVE_SUCESS)
{
wResult = pthis->m_Protocol.JumpToApp();
if (wResult == RECEIVE_SUCESS)
{
pthis->pCOpenProgres->DestroyWindow();
delete pthis->pCOpenProgres;
pthis->pCOpenProgres = NULL;

//pthis->pCOpenProgres->ShowWindow(SW_HIDE);

pthis->ShowWindow(SW_HIDE);
pthis->m_pController->Create(pthis->m_uDlgId);
pthis->m_pController->RunModalLoop();
}
}



在pthis->m_pController->Create(pthis->m_uDlgId);奔溃,把delete pthis->pCOpenProgres;注释就不奔溃 ;

奔溃在这
_CRTIMP void _cdecl _CrtDbgBreak(
void
)
{
__debugbreak();
}
...全文
149 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2016-12-26
  • 打赏
  • 举报
回复
if(p) //先判断是否为空 { delete p; p = NULL; }
060 2016-12-26
  • 打赏
  • 举报
回复
“在pthis->m_pController->Create(pthis->m_uDlgId);奔溃,把delete pthis->pCOpenProgres;注释就不奔溃 ;” 说明 m_pController与pCOpenProgres是有交互的, 查查看, m_pController 中是否使用了pCOpenProgres的数据、状态,直接的或者间接的。
真相重于对错 2016-12-26
  • 打赏
  • 举报
回复
后台线程函数不要直接操作ui界面,而是发送消息!
枫青痕 2016-12-26
  • 打赏
  • 举报
回复
把代码delete的代码搬到别的模块就好了, 至于在那个线程模块为什么崩还没弄清楚!!!
枫青痕 2016-12-26
  • 打赏
  • 举报
回复
引用 1 楼 schlafenhamster 的回复:
//pthis->pCOpenProgres->DestroyWindow(); //delete pthis->pCOpenProgres; //pthis->pCOpenProgres = NULL; 不能 Destroy , 只是 hide
我把Destroy注释也会崩~!
枫青痕 2016-12-26
  • 打赏
  • 举报
回复
引用 3 楼 zgl7903 的回复:
if(p) //先判断是否为空 { delete p; p = NULL; }
这样不好吧!要是不空那就不delete。。。。。。。。。。。。。。。。。。。。。。。。。。
schlafenhamster 2016-12-24
  • 打赏
  • 举报
回复
//pthis->pCOpenProgres->DestroyWindow(); //delete pthis->pCOpenProgres; //pthis->pCOpenProgres = NULL; 不能 Destroy , 只是 hide

15,980

社区成员

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

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