Khi tôi cố gắng biên dịch dự án c ++ của mình bằng Visual Studio 2010 ở chế độ Win32 hoặc x64, tôi gặp lỗi sau:
>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winnt.h(135): fatal error C1189: #error : "No Target Architecture"
Định nghĩa tiền xử lý của tôi nói WIN32; _DEBUG; _CONSOLE;% (PreprocessorDefinitions)
Điều gì gây ra lỗi này và làm thế nào để tôi sửa chữa nó?
// 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
Cập nhật: Tôi đã tạo một dự án msvs mới và sao chép mã của mình vào đó. Tôi không còn mắc phải nữa error : "No Target Architecture"
, nhưng bây giờ tôi có một loạt lỗi biên dịch liên quan đến winnt.h và winbase.h và không có lỗi biên dịch nào liên quan đến bất kỳ tệp nào của tôi. Có thể những tệp này bị hỏng? Tôi có cần cài đặt lại MSVS 2010 không?
Cập nhật 2: Vì vậy, tôi đã thu hẹp vấn đề của mình và nhận thấy rằng nó #include <WinDef.h>
đang gây ra tất cả các lỗi biên dịch của tôi với winnt.h nhưng tôi vẫn không biết cách khắc phục nó.