int CMSG_TestApp::Run() 
{
    try
    {
         return CWinApp::Run();
    }
    catch(CException e)
    {
 e->Reason(); 
         TRACE0("dump出系统的一些重要信息,并通知管理员查找出现意外异常的原因。");
    }
    return false; 
}

解决方案 »

  1.   

    int CMSG_TestApp::Run() 

        try 
        { 
            return CWinApp::Run(); 
        } 
        catch(CException e) 
        { 
    e->Reason(); 
            TRACE0("dump出系统的一些重要信息,并通知管理员查找出现意外异常的原因。"); 
        } 
        return false; 

      

  2.   

    对消息循环捕捉异常没有任何用处,应该在消息响应函数里捕获异常。
    你的代码中,Run函数是不会执行消息循环的,因为InitInstance中创建的是一个模式对话框,它有自己的消息循环,而且函数返回的是FALSE,这样InitInstance函数退出就表明进程也要退出了,不会进入到CWinApp提供的消息循环里面。要使用CWinApp的消息循环,不要创建模式对话框,要用非模式:
        CMSG_TestDlg* dlg = new CMSG_TestDlg;
        m_pMainWnd = dlg;
        dlg->Create();
        dlg->ShowWindow(SW_SHOW);    return TRUE;
      

  3.   

    Run是CWinApp类的虚函数,你可以重载这个函数,然后在try{}里面调用CWinApp::Run。