彻底修复多次打开文件管理窗口崩溃的缺陷
1、在主对话框清理子窗口的资源(原先在各自的OnClose函数),通过CLOSE_DELETE_DLG控制。 2、修正CFileManagerDlg的构造函数调用SHGetFileInfo和FromHandle方法,解决多次打开崩溃。 3、更新服务端zlib版本为V1.2.11。(与客户端不同,因inflate_fast 崩溃,没有采用汇编)
This commit is contained in:
@@ -568,22 +568,6 @@ void CMy2015RemoteDlg::OnTimer(UINT_PTR nIDEvent)
|
||||
|
||||
void CMy2015RemoteDlg::OnClose()
|
||||
{
|
||||
bool bOpened = false;
|
||||
for (std::vector<CFileManagerDlg *>::iterator iter = v_FileDlg.begin();
|
||||
iter != v_FileDlg.end(); ++iter)
|
||||
{
|
||||
CFileManagerDlg *cur = *iter;
|
||||
if (!cur->m_bIsClosed){
|
||||
bOpened = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (bOpened)
|
||||
{
|
||||
MessageBox(_T("<EFBFBD><EFBFBD><EFBFBD>ȹر<EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"));
|
||||
return;
|
||||
}
|
||||
|
||||
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ
|
||||
KillTimer(0);
|
||||
|
||||
@@ -716,7 +700,6 @@ VOID CMy2015RemoteDlg::OnOnlineDesktopManager()
|
||||
VOID CMy2015RemoteDlg::OnOnlineFileManager()
|
||||
{
|
||||
BYTE bToken = COMMAND_LIST_DRIVE; //<2F><><EFBFBD>̾<EFBFBD><CCBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸
|
||||
//<2F>ض˷<D8B6><CBB7><EFBFBD><EFBFBD><EFBFBD>ϢCOMMAND_LIST_DRIVE <20>ڱ<EFBFBD><DAB1>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>COMMAND_LIST_DRIVE
|
||||
|
||||
SendSelectedCommand(&bToken, sizeof(BYTE));
|
||||
}
|
||||
@@ -1117,14 +1100,13 @@ LRESULT CMy2015RemoteDlg::OnUserOfflineMsg(WPARAM wParam, LPARAM lParam)
|
||||
case FILEMANAGER_DLG:
|
||||
{
|
||||
CFileManagerDlg *Dlg = (CFileManagerDlg*)p->hDlg;
|
||||
::SendMessage(Dlg->GetSafeHwnd(), WM_CLOSE, 0, 0);
|
||||
//delete Dlg; <20><><EFBFBD><EFBFBD><E2B4A6>
|
||||
//delete Dlg; //<2F><><EFBFBD><EFBFBD><E2B4A6>
|
||||
break;
|
||||
}
|
||||
case REGISTER_DLG:
|
||||
{
|
||||
CRegisterDlg *Dlg = (CRegisterDlg*)p->hDlg;
|
||||
delete Dlg;
|
||||
//delete Dlg; //<2F><><EFBFBD><EFBFBD><E2B4A6>
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user