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?
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?
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:
typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
/* ... etc. ... */
¡Espero que esto ayude!
__int32
.
u_int32_t
y uint32_t
no son del mismo tipo; uno tiene un guión bajo adicional después del u
. Eso parece un problema aparte.
Tengo el mismo error y lo solucionó incluyendo en el archivo lo siguiente
#include <stdint.h>
al comienzo de su archivo.
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
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.
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
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.