降低退出时崩溃的概率
This commit is contained in:
@@ -129,27 +129,6 @@ CMy2015RemoteDlg::CMy2015RemoteDlg(CWnd* pParent /*=NULL*/)
|
||||
|
||||
CMy2015RemoteDlg::~CMy2015RemoteDlg()
|
||||
{
|
||||
Sleep(200);
|
||||
EnterCriticalSection(&m_cs);
|
||||
for (std::vector<CFileManagerDlg *>::iterator iter = v_FileDlg.begin();
|
||||
iter != v_FileDlg.end(); ++iter)
|
||||
{
|
||||
CFileManagerDlg *cur = *iter;
|
||||
::SendMessage(cur->GetSafeHwnd(), WM_CLOSE, 0, 0);
|
||||
while (false == cur->m_bIsClosed)
|
||||
Sleep(1);
|
||||
delete cur;
|
||||
}
|
||||
for (std::vector<CRegisterDlg *>::iterator iter = v_RegDlg.begin();
|
||||
iter != v_RegDlg.end(); ++iter)
|
||||
{
|
||||
CRegisterDlg *cur = *iter;
|
||||
::SendMessage(cur->GetSafeHwnd(), WM_CLOSE, 0, 0);
|
||||
while (false == cur->m_bIsClosed)
|
||||
Sleep(1);
|
||||
delete cur;
|
||||
}
|
||||
LeaveCriticalSection(&m_cs);
|
||||
DeleteCriticalSection(&m_cs);
|
||||
}
|
||||
|
||||
@@ -262,6 +241,7 @@ VOID CMy2015RemoteDlg::CreatStatusBar()
|
||||
|
||||
VOID CMy2015RemoteDlg::CreateNotifyBar()
|
||||
{
|
||||
#if SHOW_NOTIFY
|
||||
m_Nid.cbSize = sizeof(NOTIFYICONDATA); //<2F><>С<EFBFBD><D0A1>ֵ
|
||||
m_Nid.hWnd = m_hWnd; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>DZ<EFBFBD><C7B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD>CWnd<6E><64><EFBFBD><EFBFBD>
|
||||
m_Nid.uID = IDR_MAINFRAME; //icon ID
|
||||
@@ -271,6 +251,7 @@ VOID CMy2015RemoteDlg::CreateNotifyBar()
|
||||
CString strTips ="<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: Զ<><D4B6>Э<EFBFBD><D0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
||||
lstrcpyn(m_Nid.szTip, (LPCSTR)strTips, sizeof(m_Nid.szTip) / sizeof(m_Nid.szTip[0]));
|
||||
Shell_NotifyIcon(NIM_ADD, &m_Nid); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
||||
#endif
|
||||
}
|
||||
|
||||
VOID CMy2015RemoteDlg::CreateToolBar()
|
||||
@@ -438,6 +419,10 @@ BOOL CMy2015RemoteDlg::OnInitDialog()
|
||||
|
||||
ListenPort();
|
||||
|
||||
#if !SHOW_NOTIFY
|
||||
ShowWindow(SW_SHOW);
|
||||
#endif
|
||||
|
||||
return TRUE; // <20><><EFBFBD>ǽ<EFBFBD><C7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TRUE
|
||||
}
|
||||
|
||||
@@ -448,6 +433,12 @@ void CMy2015RemoteDlg::OnSysCommand(UINT nID, LPARAM lParam)
|
||||
CAboutDlg dlgAbout;
|
||||
dlgAbout.DoModal();
|
||||
}
|
||||
#if !SHOW_NOTIFY
|
||||
else if(nID == SC_CLOSE || nID == SC_MINIMIZE)
|
||||
{
|
||||
ShowWindow(SW_HIDE);
|
||||
}
|
||||
#endif
|
||||
else
|
||||
{
|
||||
CDialogEx::OnSysCommand(nID, lParam);
|
||||
@@ -596,8 +587,34 @@ void CMy2015RemoteDlg::OnClose()
|
||||
// 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);
|
||||
|
||||
#if SHOW_NOTIFY
|
||||
Shell_NotifyIcon(NIM_DELETE, &m_Nid);
|
||||
#endif
|
||||
|
||||
EnterCriticalSection(&m_cs);
|
||||
for (std::vector<CFileManagerDlg *>::iterator iter = v_FileDlg.begin();
|
||||
iter != v_FileDlg.end(); ++iter)
|
||||
{
|
||||
CFileManagerDlg *cur = *iter;
|
||||
::SendMessage(cur->GetSafeHwnd(), WM_CLOSE, 0, 0);
|
||||
while (false == cur->m_bIsClosed)
|
||||
Sleep(1);
|
||||
delete cur;
|
||||
}
|
||||
for (std::vector<CRegisterDlg *>::iterator iter = v_RegDlg.begin();
|
||||
iter != v_RegDlg.end(); ++iter)
|
||||
{
|
||||
CRegisterDlg *cur = *iter;
|
||||
::SendMessage(cur->GetSafeHwnd(), WM_CLOSE, 0, 0);
|
||||
while (false == cur->m_bIsClosed)
|
||||
Sleep(1);
|
||||
delete cur;
|
||||
}
|
||||
LeaveCriticalSection(&m_cs);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Sleep<65><70><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><DCB1>ⲻ<EFBFBD><E2B2BB><EFBFBD>˳<EFBFBD>ʱ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IOCP<43><50>Ҫ<EFBFBD><D2AA><EFBFBD>ظ<EFBFBD>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD>
|
||||
ShowWindow(SW_HIDE);
|
||||
Sleep(500);
|
||||
|
||||
if (m_iocpServer!=NULL)
|
||||
{
|
||||
@@ -788,13 +805,13 @@ void CMy2015RemoteDlg::OnMainExit()
|
||||
|
||||
VOID CMy2015RemoteDlg::ListenPort()
|
||||
{
|
||||
int nPort = ((CMy2015RemoteApp*)AfxGetApp())->m_iniFile.GetInt("Settings", "ListenPort");
|
||||
int nPort = ((CMy2015RemoteApp*)AfxGetApp())->m_iniFile.GetInt("settings", "ghost");
|
||||
//<2F><>ȡini <20>ļ<EFBFBD><C4BC>еļ<D0B5><C4BC><EFBFBD><EFBFBD>˿<EFBFBD>
|
||||
int nMaxConnection = ((CMy2015RemoteApp*)AfxGetApp())->m_iniFile.GetInt("Settings", "MaxConnection");
|
||||
int nMaxConnection = ((CMy2015RemoteApp*)AfxGetApp())->m_iniFile.GetInt("settings", "MaxConnection");
|
||||
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if (nPort == 0)
|
||||
nPort = 2356;
|
||||
if (nMaxConnection == 0)
|
||||
if (nPort<=0 || nPort>65535)
|
||||
nPort = 6543;
|
||||
if (nMaxConnection <= 0)
|
||||
nMaxConnection = 10000;
|
||||
Activate(nPort,nMaxConnection); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user