近日,调试程序在工作线程中要使用到主对话框的一个成员变量,当时懒得使用参数传递的方式,直接在函数里面通过afxGetmainWnd获取主窗口指针再通过指针获取成员变量的值,结果运行时报0x000005错误,当把afxGetmainWnd换成AfxGetApp()->GetMainWnd时确一切OK,运行正常,查阅资料得知:
AfxGetMainWnd获取的是当前窗口指针;
AfxGetApp()->GetMainWnd获取的是主窗口指针;
故在单线程应用中,两者可通用,但在多线程应用中获取主窗口指针需要使用AfxGetApp()->GetMainWnd。