C++除了纯面向对象的特征例如类、继成和虚函数外,在严格函数模型、内联函数、重载、操作符和模
板方面比C都有所改进。
编写面向对象的Windows程序并不是一件容易的事,因为Windows API设计时没有考虑对面向对象语言
的支持。例如,像Windows消息处理和对话框消息处理这样的回调函数必须是全局函数。C++编译器不
会允许你传递一个普通的类成员函数最为回调函数。MFC设计用来封装Windows API到一个类族体系,
它现在几近成为事实当中的编写面向对象Windows应用程序的标准。MFC在桥接面向对象C++和面向C的
Win32 API之间做了很多工作。MFC通过将仅有的一个全局函数作为通用窗口消息处理过程,该函数映射
一个HWND句柄到CWnd对象的指针,从而转化一个Win32的窗体句柄到一个C++窗体对象。当OLE、COM和
ActiveX逐渐盛行后,甚至微软都开始担心MFC的庞大和复杂性,所以,受推荐的编写轻量级COM服务和
ActiveX控件的类库是微软的另一个类库——活动模板库(Active Template Library)。
STRICT宏告诉Windows包含文件区别对待不同的对象类型,这样可以使得如果弄混了HANDLE和
HINSTANCE,或者HPEN和HBRUSH时,编译器更容易给程序员提供报警信息。