当我尝试在Win32或x64模式下使用Visual Studio 2010编译我的c ++项目时,出现以下错误:
>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导致所有编译错误的原因,但我仍然不知道如何解决它。