请问我在MFC Extension DLL,里调用AfxGetApp,得到是dll的指针,还是调用dll的主进程的指针压?多谢指点了 

解决方案 »

  1.   

    如果DLL里有应用类的话,那就是DLL里应用类的指针。
      

  2.   

    就是得到的是应用程序调用dll的指针
      

  3.   

    A pointer to the single CWinApp object for the application.应该是dll中的CWinApp的派生类
      

  4.   

    AfxGetApp()是调用AfxGetModuleState拿到返回的AFX_MODULE_STATE->m_pCurrentWinApp。因此返回的是当前线程所相关联的AFX_MODULE_STATE的WinApp指针。对于DLL来说,在正常情况下,返回的应该是初始化就设置好的DLL本身的CWinApp派生类的实例指针。当在同一线程中在不同DLL和主EXE切换的时候要通过AFX_MANAGE_STATE(AfxGetStaticModuleState( ))来正确切换AFX_MODULE_STATE,如果忘了在DLL中的输出函数的开始处调用AFX_MANAGE_STATE的话,那么由于状态切换错误,那么返回的CWinApp也是错误的。
      

  5.   

    不是这么绝对吧,还要看你这个dll是静态连接到主exe,还是动态加载的吧(loadlibrary)