เมื่อฉันพยายามรวบรวมโครงการ c ++ โดยใช้ Visual Studio 2010 ในโหมด Win32 หรือ x64 ฉันได้รับข้อผิดพลาดต่อไปนี้:
>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winnt.h(135): fatal error C1189: #error : "No Target Architecture"
คำจำกัดความของตัวประมวลผลก่อนหน้าของฉันกล่าวว่า WIN32; _DEBUG; _CONSOLE;% (PreprocessorDefinitions)
อะไรเป็นสาเหตุของข้อผิดพลาดนี้และฉันจะแก้ไขได้อย่างไร
// winnt.h: lines 127-136, MSVS says this is an inactive preprocessor block
#if defined(_WIN64)
#if defined(_AMD64_)
#define PROBE_ALIGNMENT( _s ) TYPE_ALIGNMENT( DWORD )
#elif defined(_IA64_)
#define PROBE_ALIGNMENT( _s ) (TYPE_ALIGNMENT( _s ) > TYPE_ALIGNMENT( DWORD ) ? \
TYPE_ALIGNMENT( _s ) : TYPE_ALIGNMENT( DWORD ))
#else
#error "No Target Architecture"
#endif
อัปเดต: ฉันสร้างโครงการ msvs ใหม่และคัดลอกรหัสของฉันไป ฉันไม่มีอีกerror : "No Target Architecture"
แล้ว แต่ตอนนี้ฉันมีข้อผิดพลาดในการคอมไพล์จำนวนมากที่เกี่ยวข้องกับ winnt.h และ winbase.h และไม่มีข้อผิดพลาดในการคอมไพล์ที่เกี่ยวข้องกับไฟล์ใด ๆ ของฉัน เป็นไปได้ไหมว่าไฟล์เหล่านี้เสียหาย ฉันต้องติดตั้ง MSVS 2010 ใหม่หรือไม่
อัปเดต 2: ดังนั้นฉันจึง จำกัด ปัญหาของฉันให้แคบลงและพบว่า#include <WinDef.h>
นั่นเป็นสาเหตุของข้อผิดพลาดในการคอมไพล์ทั้งหมดของฉันกับ winnt.h แต่ฉันยังไม่รู้วิธีแก้ไข