请问各位高手,mfc程序并没有主函数,那他是怎么执行的呢?是从窗口创建开始就执行吗?还是和BEGIN_MESSAGE_MAP这个东西有关?上网看是什么消息传递机制 有没有大牛详细说说??谢谢了!!!

解决方案 »

  1.   

    MFC当然也有main函数,只不过被封装在了APPMODUL.CPP 文件中,你看不到罢了。
    WinMain函数在 APPMODUL.CPP 中是这样定义的extern "C" int WINAPI 
    _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
    LPTSTR lpCmdLine, int nCmdShow) 

    // call shared/exported WinMain 
    return AfxWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow); 

    其中 _tWinMain 是一个宏,在TCHAR.h中定义的,定义如下 ANSI字符 
    #define _tWinMain WinMain UNICODE字符 
    #define _tWinMain wWinMain 
      

  2.   

    谁告诉你没有main呢?
    只是mfc的框架帮你封装好了
    你可以打开\VC\atlmfc\src\mfc下的winmain.cpp文件看看,里边有个AfxWinMain函数,这就是了
      

  3.   

    window程序是从winMain作为程序入口,而MFC中采用CWinApp类替代了WinMain的地位,在CWinApp中InnitApplication();InitInstance();int Run();这三个函数来完成WinMain()的工作,在初始化完后进入消息机制进行处理。
      

  4.   

    谢谢各位大牛 能不能举例说说InnitApplication();InitInstance();int Run()这三个函数怎么发挥main函数的作用??还有定义函数时 为什么在指针前加p?如  void CParkView::OnUpdateInputparm(CCmdUI* pCmdUI)
      

  5.   

    不是说这三个函数发挥main的函数。是在main函数里面,调用者三个函数。指针前面加p,根据匈牙利命名法来定义指针变量的。去看深入浅出MFC
      

  6.   

    谁说MFC 没有WINMAIN函数 只要是windows程序 都有WINMAIN函数函数的,因为WINMAIN函数是windows程序的入口。只不过被MFC封装到了WINAPP类中,其中InnitApplication();InitInstance();int Run()3个函数完成了win32 程序中的winmian函数。。如果你想详细了解是怎么个过程可以去看 侯捷的深入浅出MFC  讲得很详细的
      

  7.   

    在搞懂MFC之前,建议你先弄懂windows应用程序机制,有一个程序入口,叫winmain......