it-swarm.com.de

Fehler 'Uint32_t' nicht gefunden

Ich portiere Code von Linux C zu Visual C++ für Windows.

Visual C++ kennt #include <stdint.h> nicht, also habe ich es kommentiert.

Später habe ich viele dieser 'uint32_t': identifier not found-Fehler gefunden. Wie kann es gelöst werden?

74
kevin

Dieser Typ ist im C-Header <stdint.h> definiert, der Teil des C++ 11-Standards ist, jedoch kein Standard in C++ 03. Laut der Wikipedia-Seite in der Kopfzeile wurde Visual Studio bis VS2010 nicht ausgeliefert.

In der Zwischenzeit könnten Sie wahrscheinlich Ihre eigene Version des Headers fälschen, indem Sie typedefs hinzufügen, die die benutzerdefinierten Integer-Typen von Microsoft den von C erwarteten Typen zuordnen. Beispiel:

typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
/* ... etc. ... */

Hoffe das hilft!

92
templatetypedef

Sie können #include <cstdint>. Es ist Teil von C++ - Standard seit 2011. 

65
Tigerle

Boost . Config bietet diese Typedefs für Toolsets an, die sie nicht nativ bereitstellen. Die Dokumentation für diese spezifische Funktionalität finden Sie hier: Standard Integer-Typen

7
ildjarn

Ich habe den gleichen Fehler und es wurde der folgende Fehler behoben

#include <stdint.h>

am Anfang Ihrer Datei.

6
Nacho Barreto

Auf der Projektseite msinttypes ist eine Implementierung verfügbar - "Dieses Projekt füllt das Fehlen von stdint.h und inttypes.h in Microsoft Visual Studio aus". 

Ich habe keine Erfahrung mit dieser Implementierung, aber ich habe gesehen, dass es von anderen auf SO empfohlen wurde.

3
Brandon Leiran

Unter Windows verwende ich normalerweise Windows-Typen. Um es zu verwenden, müssen Sie <Windows.h> angeben.

In diesem Fall ist uint32_t UINT32 oder nur UINT.

Alle Typdefinitionen sind hier: http://msdn.Microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx

2
ST3

Ich musste das Projekt in VS2010 ausführen und konnte keine Änderungen am Code vornehmen. Meine Lösung bestand in der Installation von vS2013 und unter VS2010 Punkt VC++ - Verzeichnisse -> IncludeDirectories zu Programmdateien (x86)\Microsoft Visual Studio 12.0\VC\include. Dann wurde mein Projekt ohne Probleme kompiliert.

0
Darqer