Ich portiere Code von Linux C nach Visual C ++ für Windows.
Visual C ++ weiß es nicht, #include <stdint.h>
also habe ich es auskommentiert.
Später fand ich viele dieser 'uint32_t': identifier not found
Fehler. Wie kann es gelöst werden?
c++
c
visual-c++
Kevin
quelle
quelle
uint32_t
und andere Integer-Typen mit exakter Breite sind nur Teil von C99 und C ++ 0x, sodass ältere Compiler (wie Visual C ++ 2008 und frühere) sie nicht haben.Antworten:
Dieser Typ wird im C-Header definiert, der
<stdint.h>
Teil des C ++ 11-Standards ist, in C ++ 03 jedoch nicht Standard. Laut der Wikipedia-Seite in der Kopfzeile wurde es erst mit VS2010 mit Visual Studio ausgeliefert.In der Zwischenzeit könnten Sie wahrscheinlich Ihre eigene Version des Headers fälschen, indem Sie
typedef
s diese Karte hinzufügen die die benutzerdefinierten Integer-Typen von Microsoft den von C erwarteten Typen zuordnen. Beispiel:Hoffe das hilft!
quelle
__int32
.u_int32_t
unduint32_t
sind nicht der gleiche Typ; man hat einen zusätzlichen Unterstrich nach demu
. Das scheint ein separates Problem zu sein.Du kannst
#include <cstdint>
. Es ist Teil des C ++ - Standards seit 2011.quelle
Ich habe den gleichen Fehler und er wurde behoben, einschließlich der folgenden in der Datei
am Anfang Ihrer Datei.
quelle
Boost . Config bietet diese Typedefs für Toolsets an, die sie nicht nativ bereitstellen. Die Dokumentation für diese spezielle Funktionalität finden Sie hier: Standard Integer Types
quelle
Auf der Projektseite von msinttypes ist eine Implementierung verfügbar - "Dieses Projekt füllt das Fehlen von stdint.h und inttypes.h in Microsoft Visual Studio".
Ich habe keine Erfahrung mit dieser Implementierung, aber ich habe gesehen, dass sie von anderen auf SO empfohlen wurde.
quelle
Unter Windows verwende ich normalerweise Windows-Typen. Um es zu benutzen, müssen Sie einschließen
<Windows.h>
.In diesem Fall ist uint32_t UINT32 oder nur UINT.
Alle Typdefinitionen finden Sie hier: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx
quelle
Ich musste das Projekt in VS2010 ausführen und konnte keine Änderungen am Code vornehmen. Meine Lösung bestand darin, vS2013 und in VS2010 Punkt VC ++ Directories-> IncludeDirectories to Program Files (x86) \ Microsoft Visual Studio 12.0 \ VC \ include zu installieren. Dann wurde mein Projekt ohne Probleme kompiliert.
quelle