当我尝试使用 Visual Studio 2010在 Win32或 x64模式下编译 c + + 项目时,会得到以下错误:
>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winnt.h(135): fatal error C1189: #error : "No Target Architecture"
我的预处理器定义是 WIN32; _ DEBUG; _ CONSOLE;% (PreprocessorDefinition)
是什么导致了这个错误,我如何修复它?
// 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 的编译错误,而且没有涉及我的任何文件的编译错误。有没有可能这些文件已经损坏了?我需要重新安装 MSVS2010吗?
更新2: 我缩小了问题的范围,发现是 #include <WinDef.h>
导致了 winnt.h 的所有编译错误,但是我仍然不知道如何修复它。