费解的:AfxGetApp(),该如何处理

费解的::AfxGetApp()
今天在一个动态链接库里多次调用::AfxGetApp(),第一次用来设置CMyApp的成员变量值,第二次用来取出设置好的值,但郁闷的时候来了,始终取不到设置好的值。我发现两次使用::AfxGetApp()得到的指针值竟不相等,例如,第一次是   0x0042aae8,第二次变成了0x1002cb98。当然,我说的是一次运行,在这个过程中,没有发生动态链接库的卸载和重新加载。

我是在动态链接库里使用的::AfxGetApp(),如果说它返回的不是指向动态链接库内部申明的CMyApp   theApp对应指针,那它就不可能访问对应的成员变量(调用动态链接库主程序类是没有这个成员的),但既然返回的是一个东西,为什么指针却又不一样?

------解决方案--------------------
何必这么麻烦,你把app指针传进去好了。

------解决方案--------------------
AfxGetApp()取到的指针跟模块的上下文环境有关。
当在dll中使用了AFX_MANAGE_STATE(AfxGetStaticModuleState())宏后,AfxGetApp()取到的是dll的
不要依赖于AfxGetApp(),当有这种需求时,向dll传入HWND
------解决方案--------------------
AfxGetApp()是通过AfxGetModuleState()-> m_pCurrentWinApp获取的,也就不ouyh12345(五岭散人)的话了。
另外,lz可以自己对比下&theApp这个地址和AfxGetApp()返回值在各种状况下的异同