読者です 読者をやめる 読者になる 読者になる

AfxGetApp

MFC Sample

AfxGetAppは、現在のアプリケーションのCWinAppオブジェクトポインタを返すMFCグローバル関数・・・。

AfxGetApp

CWinApp派生のオブジェクトのInitInstance内でのthisの値と、CDialog派生のオブジェクト内のAfxGetApp()が返す値が同じかを確認してみる・・・。

MainプロジェクトをMFCアプリケーションで作成し、
Main.cppのInitInstanceで、

thisの値を文字列に変換して、AfxMessageBoxで表示している・・・。

一方、このあとに来るMainDlg.cppのOnInitDialogでは、

こちらは、AfxGetApp()の返す値を文字列に変換して、AfxMessageBoxで表示している・・・。

これを実行すると、

f:id:BG1:20160118155213p:plain

this(theAppのアドレス)は0x006aa960・・・。
一方、

f:id:BG1:20160118155359p:plain

AfxGetApp()の返す値も0x006aa960・・・。

ということでAfxGetApp()で現在のアプリケーションのCWinAppオブジェクトポインタが返ってくる・・・。

Sample/Main.h at master · bg1bgst333/Sample · GitHub
Sample/Main.cpp at master · bg1bgst333/Sample · GitHub
Sample/MainDlg.h at master · bg1bgst333/Sample · GitHub
Sample/MainDlg.cpp at master · bg1bgst333/Sample · GitHub
Sample/Resource.h at master · bg1bgst333/Sample · GitHub
Sample/Main.rc at master · bg1bgst333/Sample · GitHub
Sample/stdafx.h at master · bg1bgst333/Sample · GitHub
Sample/stdafx.cpp at master · bg1bgst333/Sample · GitHub