当我尝试将VC ++ 2005文件运行到VC ++ 2008时:
1>------ Build started: Project: canvas, Configuration: Debug Win32 ------
1>Compiling...
1>canvasApp.cpp
1>c:\documents and settings\ram\my documents\visual studio 2008\demo\stdafx.h(1) : fatal error C1083: Cannot open include file: 'afxwin.h': No such file or directory
1>canvasFrame.cpp
1>c:\documents and settings\ram\my documents\visual studio 2008\demo\stdafx.h(1) : fatal error C1083: Cannot open include file: 'afxwin.h': No such file or directory
1>Generating Code...
1>Build log was saved at "file://c:\Documents and Settings\ram\My Documents\Visual Studio 2008\demo\Debug\BuildLog.htm"
1>canvas - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
答案 0 :(得分:30)
发现这篇帖子可能有所帮助: http://social.msdn.microsoft.com/forums/en-US/Vsexpressvc/thread/7c274008-80eb-42a0-a79b-95f5afbf6528/
或者很快,afxwin.h是MFC,MFC不包含在VC ++(Express Edition)的免费版本中。
答案 1 :(得分:9)
包含标题afxwin.h
表示使用MFC。以下说明(基于those on CodeProject.com)可以帮助获取MFC代码:
下载并安装Windows Driver Kit。
选择菜单工具>选项......>项目和解决方案> VC ++目录。
在下拉菜单显示目录中选择包含文件。
添加以下路径(将$(WDK_directory)
替换为第一步中安装Windows Driver Kit的目录):
$(WDK_directory)\inc\mfc42
$(WDK_directory)\inc\atl30
在下拉菜单显示目录中选择图书馆文件并添加(替换之前的$(WDK_directory)
):
$(WDK_directory)\lib\mfc\i386
$(WDK_directory)\lib\atl\i386
在$(WDK_directory)\inc\mfc42\afxwin.inl
文件中,修改以下行(从1033开始):
_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; }
到
_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
之后添加_AFXWIN_INLINE
。
答案 2 :(得分:6)
我看到的问题是关于Express Edition,但这个主题很容易在Google搜索中弹出,并且没有其他版本的解决方案。
因此。如果您遇到除Express之外的任何VS版本的此问题,则可以重新运行安装并包含MFC文件。
答案 3 :(得分:2)
我遇到了同样的问题。最简单的方法是安装免费的Visual Studio Community 2015,如本问题所述 Is MFC only available with Visual Studio, and not Visual C++ Express?