ไม่สามารถเปิดไฟล์รวม 'afxres.h' ใน VC2010 Express


139

ฉันพยายามรวบรวมโปรเจ็กต์เก่าโดยใช้ VS express 2010 แต่ฉันได้รับข้อผิดพลาดนี้:

ข้อผิดพลาดร้ายแรง RC1015: ไม่สามารถเปิดรวมไฟล์ 'afxres.h' จากรหัสนี้

/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"

ฉันติดตั้ง Windows SDK แล้ว แต่ไม่ประสบความสำเร็จ

ขอบคุณ!

คำตอบ:


191

ส่วนหัวนี้เป็นส่วนหนึ่งของ MFC Library VS Express edition ไม่มี MFC หากโครงการของคุณไม่ใช้ MFC คุณได้อย่างปลอดภัยสามารถแทนที่afxres.hด้วยในของคุณwindows.hterrain2.rc


4
ขอบคุณฉันได้รับข้อผิดพลาด: ข้อผิดพลาด RC2104: ไม่ได้กำหนดคีย์เวิร์ดหรือชื่อคีย์: IDC_STATIC
แคลมป์

@clamp: ฟังดูเหมือนคำจำกัดความของ Common Control ลองเพิ่ม #include <Commctrl.h> ด้วย (และเชื่อมโยงโปรแกรมของคุณกับ Comctl32.lib)
ค่าเริ่มต้น

3
มิฉะนั้น IDC_STATIC จะถูกกำหนดเป็น -1 ดังนั้นให้กำหนดด้วยตัวคุณเองหากนั่นเป็นปัญหาเดียวที่เหลืออยู่
erikH

36
winres.h กำหนด IDC_STATIC ดังนั้นคุณจึงสามารถ #include <winres.h> แทนที่จะเป็น afxres.h หรือ windows.h
Conrad Poelman

3
ไม่ใช่วิธีแก้ปัญหาสำหรับ VS 2017

124

มีปัญหาเดียวกัน แก้ไขโดยการติดตั้ง Microsoft Foundation Classes สำหรับ C ++

  1. เริ่ม
  2. เปลี่ยนหรือลบโปรแกรม (ประเภท)
  3. Microsoft Visual Studio
  4. ปรับเปลี่ยน
  5. เลือก 'Microsoft Foundation Classes สำหรับ C ++'
  6. อัปเดต

ป้อนคำอธิบายภาพที่นี่


18
สิ่งนี้อาจไม่ช่วย OP เนื่องจากเขา / เธอใช้ Express edition แต่มันช่วยฉันได้แน่นอน ขอบคุณ.
nemec

2
แก้ไขปัญหาของฉัน - ฉันใช้ Visual Studio 2013 Ultimate และใช้งานได้ดี ขอบคุณ! :-)
AStopher

4
ฉันยังสามารถแก้ปัญหาของฉันใน Visual Studio 2015 community edition ด้วยคำตอบนี้
Andy Li

2
ใน Visual Studio 2017 Pro ฉันได้รับข้อผิดพลาดนี้แม้จะติดตั้งส่วนประกอบ MFC แล้วก็ตาม
ย.

38

แม้แต่ฉันเองก็ประสบปัญหาคล้าย ๆ กัน

ข้อผิดพลาดร้ายแรง RC1015: ไม่สามารถเปิดรวมไฟล์ 'afxres.h' จากรหัสนี้

การแทนที่ afxres.h ด้วย Winresrc.h และประกาศว่า IDC_STATIC เป็น -1 ได้ผลสำหรับฉัน (ใช้ Visual Studio Premium 2012)

//#include "afxres.h"
#include "WinResrc.h"
#define IDC_STATIC  -1

1
ทำงานให้ฉันแก้ปัญหา VS2019 pro edition
MCoder

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   

2
มีประโยชน์เมื่อรองรับแพลตฟอร์มข้าม
มืด

8

คุณยังสามารถลองแทนที่ afxres.h ด้วย WinResrc.h


ฉันเปลี่ยนไฟล์เป็น windows.h และ WinResrc.h และข้อความมีการเปลี่ยนแปลงในทั้งสองกรณีเป็นข้อความอื่นที่ระบุว่า: error RC2104: undefined keyword or key name: IDC_STATIC .. ฉันเดาว่า IDC_static นี้ถูกกำหนดภายใน afxres ดั้งเดิม .h แต่จะแก้ไขข้อผิดพลาดใหม่นี้ได้อย่างไร?
hashDefine

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


1

ปัญหาที่คล้ายกันสำหรับ Visual studio 2015 RC บางครั้งอาจสูญเสียความสามารถในการเปิด RC: คุณดับเบิลคลิก แต่ตัวแก้ไขไม่มีเมนูและกล่องโต้ตอบเดียว

คลิกขวาที่ไฟล์ * .rc มันจะเปิดขึ้น:

ป้อนคำอธิบายภาพที่นี่

และเปลี่ยนแปลงดังต่อไปนี้:

ป้อนคำอธิบายภาพที่นี่


1
สิ่งนี้ไม่ได้ผลสำหรับฉัน: ข้อผิดพลาดร้ายแรง RC1015: ไม่สามารถเปิดไฟล์รวม 'afxres.h'
ardila

-1

มีปัญหาที่คล้ายกัน แต่ข้อความปรากฏขึ้นเมื่อฉันพยายามเปิดโซลูชันโครงการ สิ่งที่ได้ผลสำหรับฉันคือ:

TOOLS -> นำเข้าและส่งออกการตั้งค่า ... -> รีเซ็ตการตั้งค่าทั้งหมด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.