无法在VC2010 Express中打开包含文件'afxres.h'

cla*_*amp 134 c++ winapi visual-studio visual-c++

我正在尝试使用VS express 2010编译旧项目,但是我收到此错误:

致命错误RC1015:无法打开包含文件'afxres.h'.从这段代码

/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
Run Code Online (Sandbox Code Playgroud)

我已经安装了Windows SDK,但没有任何成功.

谢谢!

Kir*_*sky 189

此标头是MFC库的一部分.VS Express版不包含MFC.如果您的项目不使用MFC,您可以安全地替换afxres.hwindows.h您的terrain2.rc.

  • winres.h定义了IDC_STATIC,因此您可能只需#include <winres.h>而不是afxres.h或windows.h. (36认同)
  • 谢谢,然后我得到错误:错误RC2104:未定义的关键字或密钥名称:IDC_STATIC (4认同)
  • 否则IDC_STATIC被定义为-1,所以如果这是剩下的唯一问题,请自己定义. (3认同)
  • 不是VS 2017的解决方案 (2认同)

Col*_*nic 122

有同样的问题.通过安装Microsoft基础类C++来解决此问题.

  1. 开始
  2. 更改或删除程序(类型)
  3. Microsoft Visual Studio
  4. 修改
  5. 选择"Microsoft基础类C++"
  6. 更新

在此输入图像描述

  • 这可能无法帮助OP,因为他/她在Express版本上,但它确实帮助了我!谢谢. (18认同)
  • 我也能用这个答案在Visual Studio 2015社区版上解决我的问题. (4认同)
  • 这应该标记为答案,所有其他都是解决方法或黑客 (3认同)
  • 解决了我的问题 - 我在Visual Studio 2013 Ultimate上,它运行良好.谢谢!:-) (2认同)
  • 在Visual Studio 2017 Pro中,即使安装了MFC组件也出现此错误。 (2认同)

rav*_*bie 36

即使我也面临类似的问题,

致命错误RC1015:无法打开包含文件'afxres.h'.从这段代码

用Winresrc.h替换afxres.h并将IDC_STATIC声明为-1对我有用.(使用visual studio Premium 2012)

//#include "afxres.h"
#include "WinResrc.h"
#define IDC_STATIC  -1
Run Code Online (Sandbox Code Playgroud)


小智 11

或者你可以创建自己的afxres.h:

#ifndef _AFXRES_H
#define _AFXRES_H
#if __GNUC__ >= 3
#pragma GCC system_header
#endif

#ifdef __cplusplus
extern "C" {
#endif

#ifndef _WINDOWS_H
#include <windows.h>
#endif

/* IDC_STATIC is documented in winuser.h, but not defined. */
#ifndef IDC_STATIC
#define IDC_STATIC (-1)
#endif

#ifdef __cplusplus
}
#endif
#endif   
Run Code Online (Sandbox Code Playgroud)

  • 在支持跨平台时很有用 (2认同)

Irb*_*bis 7

您也可以尝试使用WinResrc.h替换afxres.h


Tia*_*rte 6

设法通过从另一个Visual Studio设置(非快速)复制下面的文件夹来解决这个问题

来自C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\VC\atlmfc

到C:\ Program Files(x86)\ Microsoft Visual Studio 11.0\VC\atlmfc