1. 当前实例句柄hInstance 与 theApp 的关系
根据theApp的定义,可以发现:CXXXApp theApp;
类声明 class CXXXApp : public CWinApp
找到CWinApp的定义,可以发现这段代码(节选):
class CWinApp : public CWinThread
{
DECLARE_DYNAMIC(CWinApp)
public:
// Constructor
CWinApp(LPCTSTR lpszAppName = NULL); // app name defaults to EXE name
// Attributes
// Startup args (do not change)
HINSTANCE m_hInstance;
HINSTANCE m_hPrevInstance;
LPTSTR m_lpCmdLine;
int m_nCmdShow;
......
执行int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPWSTR lpCmdLine, int nShowCmd )时,系统把这些参数传给了theApp
theApp对象实际上就代表了整个程序,“当前实例句柄”之类的东西都只是它的一部分而已。