8

编译时出现以下错误:

c:\program files (x86)\windows kits\8.0\include\um\winnt.h(146): 致命错误 C1189: #error : "No Target Architecture"

无论如何,我没有在我的项目中使用 Windows Kit(或者我没有看到它被包含在内)。我尝试用 32 位、64 位和继承来更改我的项目中的架构目标。什么都没有。任何想法 ?

编辑:所有包含的列表。前两行来自我的项目。

1>  Remarque : inclusion du fichier :  d:\visual studio 2012\netsdk_poc\mfc_netsdk2\mfc_netsdk2\stdafx.h
1>  Remarque : inclusion du fichier :   d:\visual studio 2012\netsdk_poc\mfc_netsdk2\mfc_netsdk2\Libs\\netsdk.h
1>  Remarque : inclusion du fichier :    C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\stddef.h
1>  Remarque : inclusion du fichier :     C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h
1>  Remarque : inclusion du fichier :      C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\sal.h
1>  Remarque : inclusion du fichier :       C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\ConcurrencySal.h
1>  Remarque : inclusion du fichier :      C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\vadefs.h
1>  Remarque : inclusion du fichier :    C:\Program Files (x86)\Windows Kits\8.0\Include\shared\windef.h
1>  Remarque : inclusion du fichier :     C:\Program Files (x86)\Windows Kits\8.0\Include\shared\winapifamily.h
1>  Remarque : inclusion du fichier :     C:\Program Files (x86)\Windows Kits\8.0\Include\shared\minwindef.h
1>  Remarque : inclusion du fichier :      C:\Program Files (x86)\Windows Kits\8.0\Include\shared\specstrings.h
1>  Remarque : inclusion du fichier :       C:\Program Files (x86)\Windows Kits\8.0\Include\shared\specstrings_strict.h
1>  Remarque : inclusion du fichier :        C:\Program Files (x86)\Windows Kits\8.0\Include\shared\specstrings_undef.h
1>  Remarque : inclusion du fichier :       C:\Program Files (x86)\Windows Kits\8.0\Include\shared\driverspecs.h
1>  Remarque : inclusion du fichier :        c:\program files (x86)\windows kits\8.0\include\shared\sdv_driverspecs.h
1>  Remarque : inclusion du fichier :      C:\Program Files (x86)\Windows Kits\8.0\Include\um\winnt.h
1>  Remarque : inclusion du fichier :       C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\ctype.h
1>  Remarque : inclusion du fichier :        C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h
1>  Remarque : inclusion du fichier :       C:\Program Files (x86)\Windows Kits\8.0\Include\shared\kernelspecs.h
4

1 回答 1

6

错误行说

#if defined(_AMD64_) || defined(_X86_)
#define PROBE_ALIGNMENT( _s ) TYPE_ALIGNMENT( DWORD )
#elif defined(_IA64_) || defined(_ARM_)
#define PROBE_ALIGNMENT( _s ) (TYPE_ALIGNMENT( _s ) > TYPE_ALIGNMENT( DWORD ) ? \
                              TYPE_ALIGNMENT( _s ) : TYPE_ALIGNMENT( DWORD ))
#elif !defined(RC_INVOKED)
#error "No Target Architecture"
#endif

您已经 #included 了该标头,可能间接地通过包含另一个标头。Properties | C/C++ | Advanced您可以通过在项目菜单中将“显示包含”设置为“是”来告诉 VS2012 列出它使用的所有包含。winnt.h如果不需要,请尝试不包括正在拖入的标题。

winnt.h可能会造成麻烦,例如看这里

编辑
因此,预编译头文件包括windef.h,其中包含有问题的头文件。尝试从预编译的头文件中删除该行。

于 2013-10-10T10:18:42.947 回答