在MFC DLL中,为什么必须使用“ CWinApp theApp;”来声明theApp?否则会发生运行时异常。何时实例化App?
[来自MSDN]
theApp是应用程序对象。该对象是在构造其他C ++全局对象时构造的,并且在Windows调用WinMain函数时应该已经可用。并且有必要在全局级别上声明您的对象。
应用程序启动 -用户启动应用程序时,Windows调用应用程序框架的内置WinMain函数,然后WinMain查找从CWinApp派生的类的全局构造的应用程序对象。不要忘记,在C ++程序中,全局对象是在执行主程序之前构造的。
CMyApp :: InitInstance成员函数-WinMain函数找到应用程序对象时,它将调用虚拟InitInstance成员函数,后者将进行构造和显示应用程序主框架窗口所需的调用。您必须在派生的应用程序类中重写InitInstance,因为CWinApp基类不知道您想要哪种主机框架窗口。
CWinApp :: Run成员函数-Run函数隐藏在基类中,但是它将应用程序的消息分发到其窗口,从而使应用程序保持运行状态。WinMain调用InitInstance后调用Run。
归档时间: |
|
查看次数: |
4523 次 |
最近记录: |