Je porte du code de Linux C vers Visual C ++ pour Windows.
Visual C ++ ne le sait pas, #include <stdint.h>
alors je l'ai commenté.
Plus tard, j'ai trouvé beaucoup de ces 'uint32_t': identifier not found
erreurs. Comment peut-il être résolu?
c++
c
visual-c++
Kevin
la source
la source
uint32_t
et les autres types d'entiers de largeur exacte ne font partie que de C99 et C ++ 0x, donc les compilateurs plus anciens (comme Visual C ++ 2008 et versions antérieures) ne les ont pas.Réponses:
Ce type est défini dans l'en-tête C
<stdint.h>
qui fait partie du standard C ++ 11 mais pas du standard C ++ 03. Selon la page Wikipedia sur l'en-tête , il n'a été livré avec Visual Studio avant VS2010.En attendant, vous pourriez probablement simuler votre propre version de l'en-tête en ajoutant des
typedef
s qui mappent les types d'entiers personnalisés de Microsoft aux types attendus par C. Par exemple:J'espère que cela t'aides!
la source
__int32
.u_int32_t
etuint32_t
ne sont pas du même type; on a un trait de soulignement supplémentaire après leu
. Cela semble être un problème distinct.Vous pouvez
#include <cstdint>
. Cela fait partie du C ++ - standard depuis 2011.la source
J'ai la même erreur et je l'ai corrigée en incluant dans le fichier ce qui suit
au début de votre dossier.
la source
Boost . Config propose ces typedefs pour les jeux d'outils qui ne les fournissent pas nativement. La documentation de cette fonctionnalité spécifique est ici: Types d'entiers standard
la source
Une implémentation est disponible sur la page du projet msinttypes - «Ce projet remplit l'absence de stdint.h et inttypes.h dans Microsoft Visual Studio».
Je n'ai pas d'expérience avec cette implémentation, mais je l'ai vue recommandée par d'autres sur SO.
la source
Sous Windows, j'utilise généralement des types de fenêtres. Pour l'utiliser, vous devez inclure
<Windows.h>
.Dans ce cas, uint32_t est UINT32 ou juste UINT.
Toutes les définitions de types sont ici: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx
la source
J'ai dû exécuter le projet dans VS2010 et je n'ai pas pu introduire de modifications dans le code. Ma solution consistait à installer vS2013 et dans VS2010, les répertoires VC ++ -> IncludeDirectories to Program Files (x86) \ Microsoft Visual Studio 12.0 \ VC \ include. Ensuite, mon projet a été compilé sans aucun problème.
la source