尽管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”被插入了两次(注意大写)。