解决疑惑:afxGetApp () 获得theApp 的指针的过程
基本上是这样的
一,定义
class ModuleState
{
public:
WinApp* m_pcurrentApp;
HINSTANCE m_hCurrentInst;
};
二,生成全局对象
ModuleState state;(这个对象应该比theapp 生成的早点。自己这样认为的,没做实验验证迟了的后果)
三 全局函数 GblGetModuleState (类似afxGetModuleState 或者 AfxGetApp. 自己写的么,就不使afx 了!)
ModuleState* GblGetModuleState()
{
return &state;
}
四, 在WinApp的构造函数中,初始化state的m_pcurrentApp
WinApp::WinApp()
{
GblGetModuleState()->m_pcurrentApp = this;
}
五,为了验证是否是自己的Myapp:public Winapp生成的 theapp
使用两个虚函数 winapp::Instance(){cout<<"in winapp";}