Коли я намагаюся скомпілювати проект 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, але я все ще не знаю, як її виправити.