Lorsque j'essaie de compiler mon projet C ++ à l'aide de Visual Studio 2010 en mode Win32 ou x64, j'obtiens l'erreur suivante:
>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winnt.h(135): fatal error C1189: #error : "No Target Architecture"
Mes définitions de préprocesseur disent WIN32; _DEBUG; _CONSOLE;% (PreprocessorDefinitions)
Quelle est la cause de cette erreur et comment la corriger?
// 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
Mise à jour: j'ai créé un nouveau projet msvs et y ai copié mon code. Je ne l'ai plus error : "No Target Architecture"
, mais maintenant j'ai un tas d'erreurs de compilation impliquant winnt.h et winbase.h et aucune erreur de compilation impliquant aucun de mes fichiers. Est-il possible que ces fichiers soient corrompus? Dois-je réinstaller MSVS 2010?
Mise à jour 2: J'ai donc réduit mon problème et j'ai découvert que c'était #include <WinDef.h>
à l'origine de toutes mes erreurs de compilation avec winnt.h mais je ne sais toujours pas comment le résoudre.