Ketika saya mencoba untuk mengkompilasi proyek c ++ saya menggunakan Visual Studio 2010 baik dalam mode Win32 atau x64 saya mendapatkan kesalahan berikut:
>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winnt.h(135): fatal error C1189: #error : "No Target Architecture"
Definisi preprocessor saya mengatakan WIN32; _DEBUG; _CONSOLE;% (PreprocessorDefinitions)
Apa yang menyebabkan kesalahan ini dan bagaimana cara memperbaikinya?
// 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
Pembaruan: Saya membuat proyek msvs baru dan menyalin kode saya ke sana. Saya tidak lagi memilikinya error : "No Target Architecture"
, tetapi sekarang saya memiliki banyak kesalahan kompilasi yang melibatkan winnt.h dan winbase.h dan tidak ada kesalahan kompilasi yang melibatkan file saya. Apakah mungkin file-file ini rusak? Apakah saya perlu menginstal ulang MSVS 2010?
Pembaruan 2: Jadi saya mempersempit masalah saya dan menemukan bahwa itulah #include <WinDef.h>
yang menyebabkan semua kesalahan kompilasi saya dengan winnt.h tetapi saya masih tidak tahu cara memperbaikinya.