程序如下://Ex12_02.cpp
//An elementary MFC program
#include<afxwin.h>class COurApp: public CWinApp
{
public:
virtual BOOL InitInstance();
};class COurWnd:public CFrameWnd
{
public:
COurWnd()
{
Create(0,L"Our Dumb MFC Application.");
}
};BOOL COurApp::InitInstance(void)
{
m_pMainWnd=new COurWnd;
m_pMainWnd->ShowWindow(m_nCmdShow);
return TRUE;
}//Application object definition at global scope
COurApp AnApplication;我想知道为什么这条语句COurApp AnApplication; 是必须 的????
为什么呢???

解决方案 »

  1.   

    看mfc代码就明白了
    extern "C" int WINAPI
    _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPTSTR lpCmdLine, int nCmdShow)
    {
    // call shared/exported WinMain
    return AfxWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow);
    }
    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)
    {
    TRACE(traceAppMsg, 0, "Warning: Destroying non-NULL m_pMainWnd\n");
    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)
    {
    TRACE(traceAppMsg, 0, "Warning: Temp map lock count non-zero (%ld).\n",
    AfxGetModuleThreadState()->m_nTempMapLock);
    }
    AfxLockTempMaps();
    AfxUnlockTempMaps(-1);
    #endif AfxWinTerm();
    return nReturnCode;
    }
      

  2.   

    定义了一个类,是为了建立这个类的实例。这样这个类才有意义。COurApp是一个类,建立这个类的实例,是因为隐藏的CMainWnd()实现里需要这个
      

  3.   

    你还是先看看win32的程序流程是怎样的吧,估计你一开始就用MFC,确实你会不明白,再怎么给你说,也是徒劳!!看看WIN32的基础知识吧!
      

  4.   

    无语,对象思想都没搞清楚,些什么MFC啊!!