Когда я пытаюсь скомпилировать свой проект 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, но я до сих пор не знаю, как это исправить.