MFC
简介
微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是微软公司提供的一个类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。
–百度百科
虽然由于实际应用中MFC似乎即将被淘汰,(据说微软放弃更新十几年,但从版本号和种种迹象来看似乎是还在不断更新的,VS2015中的MFC已经更新到了14.0版本),但偶尔还是会出现这一类的GUI的
而且由于相对于原生WindowsGUI程序的主函数被直接作为参数来说,MFC将各个触发函数放置在消息映射表里,所以相对有一些难度 因此CTF中有时会出现MFC类的题目、也需要做一些知识储备
基本机制
MFC的思想是所有类继承自基类CObject,每个类都拥有一个消息映射表和各自的成员
通常开发者自定义的窗口是继承自CDialog的,整个继承链为
MyDialog->CDialog->CWnd->CCmdTarget->CObject
当遇到消息时,会从本类的消息映射表中匹配处理对应消息的函数,如果没有找到则去父类的消息映射表中寻找,以此类推
如果直到CObject类的消息映射表寻找完都没有函数处理消息,则将消息放入默认处理函数中处理(与Windows32API的思想一致)
消息映射表是如下结构