Estoy transfiriendo código de Linux C a Visual C ++ para Windows.
Visual C ++ no lo sabe, #include <stdint.h>
así que lo comenté.
Más tarde, encontré muchos de esos 'uint32_t': identifier not found
errores. ¿Cómo se puede solucionar?
c++
c
visual-c++
Kevin
fuente
fuente
uint32_t
y otros tipos de enteros de ancho exacto son solo una parte de C99 y C ++ 0x, por lo que los compiladores más antiguos (como Visual C ++ 2008 y anteriores) no los tienen.Respuestas:
Este tipo se define en el encabezado C,
<stdint.h>
que es parte del estándar C ++ 11 pero no estándar en C ++ 03. Según la página de Wikipedia en el encabezado , no se envió con Visual Studio hasta VS2010.Mientras tanto, probablemente podría falsificar su propia versión del encabezado agregando
typedef
s que mapeen los tipos de enteros personalizados de Microsoft a los tipos esperados por C. Por ejemplo:¡Espero que esto ayude!
fuente
__int32
.u_int32_t
yuint32_t
no son del mismo tipo; uno tiene un guión bajo adicional después delu
. Eso parece un problema aparte.Puede
#include <cstdint>
. Es parte de C ++, estándar desde 2011.fuente
Tengo el mismo error y lo solucionó incluyendo en el archivo lo siguiente
al comienzo de su archivo.
fuente
Impulsar . Config ofrece estas definiciones de tipo para conjuntos de herramientas que no las proporcionan de forma nativa. La documentación para esta funcionalidad específica está aquí: Tipos de enteros estándar
fuente
Hay una implementación disponible en la página del proyecto msinttypes : "Este proyecto llena la ausencia de stdint.hy inttypes.h en Microsoft Visual Studio".
No tengo experiencia con esta implementación, pero la he visto recomendada por otros en SO.
fuente
En Windows, suelo utilizar tipos de Windows. Para usarlo tienes que incluir
<Windows.h>
.En este caso, uint32_t es UINT32 o simplemente UINT.
Todas las definiciones de tipos están aquí: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx
fuente
Tuve que ejecutar el proyecto en VS2010 y no pude introducir ninguna modificación en el código. Mi solución fue instalar vS2013 y en VS2010 apunte VC ++ Directories-> IncludeDirectories to Program Files (x86) \ Microsoft Visual Studio 12.0 \ VC \ include. Entonces mi proyecto se compiló sin ningún problema.
fuente