AfxGetApp()为什么能获取到theApp的指针?
AfxGetApp()为什么能获取到theApp的指针?AfxGetApp()是全局的函数啊,调用的时候又不用传递任何参数,为什么能获取theApp的指针呢?theApp...
AfxGetApp()为什么能获取到theApp的指针?AfxGetApp()是全局的函数啊,调用的时候又不用传递任何参数,为什么能获取theApp的指针呢?theApp只是一个全局变量,AfxGetApp()是怎么找到theApp的?
展开
1个回答
展开全部
基类CWinApp的构造里有设置:
pModuleState->m_pCurrentWinApp = this;
然后AfxGetApp可以获得这个结构,从里面拿出m_pCurrentWinApp
_AFXWIN_INLINE CWinApp* AFXAPI AfxGetApp()
{ return afxCurrentWinApp; }
#define afxCurrentWinApp AfxGetModuleState()->m_pCurrentWinApp
更多追问追答
追问
这个我知道,问题是AfxGetApp怎么访问到的CWinApp的对象。theApp是一个全局变量,AfxGetApp()是一个全局的函数,我们在调用AfxGetApp()时没有给他传递任何参数,为什么他能访问到theApp,还能获得里面的pModuleState->m_pCurrentWinApp?
追答
theApp的类不是从CWinApp继承的么,构造继承类的话得先构造基类阿,然后构造基类的时候,
就把this指针也就是theApp的地址赋值给AFX_MODULE_STATE结构的m_pCurrentWinApp了
然后afxgetapp取得这个结构,里面的m_pCurrentWinApp就是theApp的地址了
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家可靠的代理服务提供商,提供原生IP(住宅原生IP)和高匿名代理服务。以下是关于StormProxies的原生IP服务的一些信息:1. 住宅原生IP:StormProxies提供的住宅原生IP是指从真实的家庭或企...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询