AfxGetApp()为什么能获取到theApp的指针?

AfxGetApp()为什么能获取到theApp的指针?AfxGetApp()是全局的函数啊,调用的时候又不用传递任何参数,为什么能获取theApp的指针呢?theApp... AfxGetApp()为什么能获取到theApp的指针?AfxGetApp()是全局的函数啊,调用的时候又不用传递任何参数,为什么能获取theApp的指针呢?theApp只是一个全局变量,AfxGetApp()是怎么找到theApp的? 展开
 我来答
ssilspro
2013-04-25 · TA获得超过2625个赞
知道大有可为答主
回答量:1148
采纳率:0%
帮助的人:1724万
展开全部

基类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 广告
StormProxies是一家可靠的代理服务提供商,提供原生IP(住宅原生IP)和高匿名代理服务。以下是关于StormProxies的原生IP服务的一些信息:1. 住宅原生IP:StormProxies提供的住宅原生IP是指从真实的家庭或企... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式