在Visual C++ Express中编译MFC代码的指南

尽管Visual C++ Express版提供了丰富的开发环境,但它缺少开发和编译MFC程序的功能。本文将解释如何在Visual C++ Express中编译MFC代码,这对于像这样有许多旧MFC代码的人来说特别有用。

五个简单步骤

要在Visual C++ Express中编译MFC代码,首先需要执行以下五个步骤:

首先,如果还没有安装Visual C++ Express版,请下载并安装它。

访问Windows Server 2003驱动开发工具包(DDK)网页,下载DDK ISO文件并将其刻录到CD上。大多数情况下,可以使用随电脑附带的CD刻录软件来完成这项任务,或者可以使用这些软件:

# 此处应有链接到推荐的软件下载页面

安装DDK,只需执行CD上的setup.exe。默认安装选项(构建环境、文档、驱动开发工具)就足够了。

需要添加一些目录路径,以告诉Visual C++在哪里可以找到MFC相关的文件。这可以通过在“工具”菜单中选择“选项...”来完成,如下所示:

然后在左侧列表中选择“项目和解决方案”。现在,在右侧的“显示目录为”下拉菜单中,选择“包含文件”。在这里,应该添加以下路径:

$(DDK_directory)\inc\mfc42 $(DDK_directory)\inc\atl30

其中,应该将$(DDK_directory)替换为在上一步中安装DDK的目录,例如在情况下是"C:\WINDDK\3790.1830";参见下面的图片:

现在,将“显示目录为”下拉菜单更改为“库文件”,并添加:

$(DDK_directory)\lib\mfc\i386 $(DDK_directory)\lib\atl\i386

再次,将$(DDK_directory)替换为机器上的DDK路径;参见下面的图片:

在最后一步中,需要编辑文件"afxwin.inl",该文件位于$(DDK_directory)\inc\mfc42目录中。

在此文件中,从第1033行开始,将:

C++ _AFXWIN_INLINE CMenu::operator==( const CMenu& menu) const { return ((HMENU) menu) == m_hMenu; } _AFXWIN_INLINE CMenu::operator!=( const CMenu& menu) const { return ((HMENU) menu) != m_hMenu; }

更改为:

C++ _AFXWIN_INLINE BOOL CMenu::operator==( const CMenu& menu) const { return ((HMENU) menu) == m_hMenu; } _AFXWIN_INLINE BOOL CMenu::operator!=( const CMenu& menu) const { return ((HMENU) menu) != m_hMenu; }

其中“BOOL”被插入了两次(注意大写)。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485