Je porte du code de Linux C à Visual C++ pour Windows.
Visual C++ ne connaît pas #include <stdint.h>
alors je l'ai commenté.
Plus tard, j'ai trouvé beaucoup de ces erreurs 'uint32_t': identifier not found
. Comment peut-il être résolu?
Ce type est défini dans l'en-tête C <stdint.h>
qui fait partie du standard C++ 11 mais n'est pas standard en C++ 03. Selon la page Wikipedia sur l'en-tête , il n'a pas été livré avec Visual Studio avant le VS2010.
En attendant, vous pouvez probablement créer votre propre version de l'en-tête en ajoutant typedef
s that map les types d'entiers personnalisés de Microsoft aux types attendus par C.
typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
/* ... etc. ... */
J'espère que cela t'aides!
Vous pouvez #include <cstdint>
. Cela fait partie de C++ - standard depuis 2011.
Boost . Config propose ces types de fichiers pour les jeux d’outils qui ne les fournissent pas nativement. La documentation de cette fonctionnalité spécifique est la suivante: Types d’entiers standard
J'ai la même erreur et cela a été corrigé, y compris dans le fichier:
#include <stdint.h>
au début de votre dossier.
Une implémentation est disponible sur la page du projet msinttypes - "Ce projet comble l’absence de stdint.h et inttypes.h dans Microsoft Visual Studio".
Je n'ai pas l'expérience de cette implémentation, mais je l'ai vue recommandée par d'autres sur SO.
Sur Windows, j'utilise généralement des types Windows. Pour l'utiliser, vous devez inclure <Windows.h>
.
Dans ce cas, uint32_t est UINT32 ou simplement UINT.
Toutes les définitions de types sont ici: http://msdn.Microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx
Je devais exécuter le projet dans VS2010 et je ne pouvais introduire aucune modification dans le code. Ma solution consistait à installer la vS2013 et, au point VS2010, les répertoires VC++ -> IncludeDirectories to Program Files (x 86)\Microsoft Visual Studio 12.0\VC\include. Ensuite, mon projet a été compilé sans aucun problème.