WEB开发网
开发学院软件开发VC MFC程序中的WinMain函数(2) 阅读

MFC程序中的WinMain函数(2)

 2008-11-24 19:59:38 来源:WEB开发网   
核心提示: 我们可以采取同样的方式查找定义AfxWinMain函数的源文件,在搜索到的文件中双击WINMAIN.CPP,MFC程序中的WinMain函数(2)(4),并在其中找到AfxWinMain函数的定义代码,如例3-7所示

我们可以采取同样的方式查找定义AfxWinMain函数的源文件,在搜索到的文件中双击WINMAIN.CPP,并在其中找到AfxWinMain函数的定义代码,如例3-7所示。

例3-7

  int AFXAPI AfxWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPTSTR lpCmdLine, int nCmdShow)
  {
    ASSERT(hPrevInstance == NULL);
    int nReturnCode = -1;
  ① CWinThread* pThread = AfxGetThread();
 CWinApp* pApp = AfxGetApp();
    // AFX internal initialization
    if (!AfxWinInit(hInstance, hPrevInstance, lpCmdLine, nCmdShow))
      goto InitFailure;
    // App global initializations (rare)
  ② if (pApp != NULL && !pApp->InitApplication())
      goto InitFailure;
    // Perform specific initializations
  ③ if (!pThread->InitInstance())
    {
      if (pThread->m_pMainWnd != NULL)
      {
        TRACE0("Warning: Destroying non-NULL m_pMainWndn");
        pThread->m_pMainWnd->DestroyWindow();
      }
      nReturnCode = pThread->ExitInstance();
      goto InitFailure;
    }
  ④ nReturnCode = pThread->Run();
  InitFailure:
  #ifdef _DEBUG
    // Check for missing AfxLockTempMap calls
    if (AfxGetModuleThreadState()->m_nTempMapLock != 0)
    {
      TRACE1("Warning: Temp map lock count non-zero (%ld).n",
        AfxGetModuleThreadState()->m_nTempMapLock);
    }
    AfxLockTempMaps();
    AfxUnlockTempMaps(-1);
  #endif
    AfxWinTerm();
    return nReturnCode;
  }

上一页  1 2 3 4 5 6  下一页

Tags:MFC 程序 WinMain

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接