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