VC6之MFC遗留程序升级方法

最近拿到一个VC6 MFC编写的遗留程序源代码,需要将其升级到最新的Windows系统,记录一下升级过程。

MFC程序执行流程

程序是从Main(WinMain)开始和结束。 但是在Main(WinMain)开始之前会对全局的变量或者对象进行初始化。

故在MFC中,通过全局类(theApp) 的初始化, 进入theApp的构造函数,根据类的规则,初始子类的构造函数,必须先要运行父类的构造函数。 在这过程把包含WinMain的文件连接了进来。 这样就隐藏了WinMain函数。

在WinMain函数中调用了AfxWinMain函数,在AfxWinMain函数中通过调用InitInstance函数完成了窗口的设计 窗口的注册 窗口的创建 窗口的显示和更新。然后在AfxWinMain中调用了Run方法,完成消息循环。

MFC扩展库BCGControlBar

遗留程序依赖 MFC 扩展库BCGControlBar,因此需要安装和配置 BCGControlBar,否则编译链接出错。例如:

BCGCBProInc.h : No such s file or dictionary. 解决方案:安装BGB界面库

安装

BCGControlBar是一个基于MFC的扩展库,您可以通过完全的用户化操作构成一些类似于Microsoft Office 2000/XP/2003和Microsoft Visual Studio.NET的应用程序(用户工具栏、菜单、键盘等等)。BCGControlBar库包含了大约150多个经过精心设计,测试和具有完备文档的MFC扩展类。这些都可以很容易的应用于您的应用程序,节省大量的开发和调试时间。

配置

在编译之前,要先设置其附加包含目录和附加库目录。

vc6.0在其tools>>options>>directoris下进行设置。在show directories for选择include files,添加BCGControlBar安装目录下的BCGCBPro目录。

然后再选择show directories for下的Library files并添加BCGControlBar安装目录下的bin目录。

MFC扩展库MapX

遗留程序依赖 MFC 扩展库 MapX,因此需要安装和配置 MapX,否则编运行出错。

MapX简介

MapX控件是Map Info公司向用户提供的具有强大地图分析功能的ActiveX控件,适用于大多数面向对象语言,可以无缝嵌入到各个领域的应用系统当中去。

参考链接

  1. 深入跟踪MFC程序的执行流程,by wenluderen
  2. 【C++】MFC 程序入口和执行流程,by 不溯流光.
  3. MFC专业扩展库BCGControlBar:使用方法入门,by 不如温暖过生活.
  4. MFC BCGControlBar 安装及使用,by VIPWTL.
  5. MFC框架——单文档/多文档/对话框/多顶级文档的区别,by 郝红升.
  6. MFC建立空文档失败分析,by 咖啡熊猫.
  7. 关于VC++6.0重新安装falsed时出现的DCOM user account解决方案,by miracle_dan.
  8. VC下MapX开发环境建立,by 风一兮.
  9. 用VC++对MapX进行二次开发总结,by 风一兮.