web-dev-qa-db-fra.com

'uint32_t' identificateur introuvable erreur

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?

74
kevin

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 typedefs 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!

92
templatetypedef

Vous pouvez #include <cstdint>. Cela fait partie de C++ - standard depuis 2011. 

65
Tigerle

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

7
ildjarn

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.

6
Nacho Barreto

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.

3
Brandon Leiran

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

2
ST3

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.

0
Darqer