
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的地址了

2022-08-05 广告
苏州蓝晓生物科技有限公司。标准化核心产品:公司拥有完整的琼脂糖介质、葡聚糖介质、聚甲基丙烯酸酯介质生产线,年产分离介质50000L,产品质量稳定并达到国际领先水平。核心优势:公司核心技术人员拥有近二十年不同基质的基球开发和官能化的丰富技术经...
点击进入详情页
本回答由苏州蓝晓生物科技有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询