Wenn ich versuche, mein C ++ - Projekt mit Visual Studio 2010 im Win32- oder x64-Modus zu kompilieren, wird die folgende Fehlermeldung angezeigt:
>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winnt.h(135): fatal error C1189: #error : "No Target Architecture"
Meine Präprozessordefinitionen sagen WIN32; _DEBUG; _CONSOLE;% (PreprocessorDefinitions)
Was verursacht diesen Fehler und wie behebe ich ihn?
// 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
Update: Ich habe ein neues msvs-Projekt erstellt und meinen Code darauf kopiert. Ich habe keine mehr error : "No Target Architecture"
, aber jetzt habe ich eine Reihe von Kompilierungsfehlern mit winnt.h und winbase.h und keine Kompilierungsfehler mit einer meiner Dateien. Ist es möglich, dass diese Dateien beschädigt sind? Muss ich MSVS 2010 neu installieren?
Update 2: Also habe ich mein Problem #include <WinDef.h>
eingegrenzt und festgestellt, dass es alle meine Kompilierungsfehler mit winnt.h verursacht, aber ich weiß immer noch nicht, wie ich es beheben soll.