Sto portando il codice da Linux C a Visual C ++ per Windows.
Visual C ++ non lo sa, #include <stdint.h>
quindi l'ho commentato.
Successivamente, ho trovato molti di questi 'uint32_t': identifier not found
errori. Come risolverlo?
Sto portando il codice da Linux C a Visual C ++ per Windows.
Visual C ++ non lo sa, #include <stdint.h>
quindi l'ho commentato.
Successivamente, ho trovato molti di questi 'uint32_t': identifier not found
errori. Come risolverlo?
uint32_t
altri tipi interi di larghezza esatta sono solo una parte di C99 e C ++ 0x, quindi i compilatori meno recenti (come Visual C ++ 2008 e precedenti) non li hanno.
Risposte:
Questo tipo è definito nell'intestazione C <stdint.h>
che fa parte dello standard C ++ 11 ma non standard in C ++ 03. Secondo la pagina di Wikipedia nell'intestazione , non è stato fornito con Visual Studio fino a VS2010.
Nel frattempo, potresti probabilmente falsificare la tua versione dell'intestazione aggiungendo typedef
s che mappano i tipi interi personalizzati di Microsoft ai tipi previsti da C. Ad esempio:
typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
/* ... etc. ... */
Spero che questo ti aiuti!
__int32
.
u_int32_t
e uint32_t
non sono dello stesso tipo; uno ha un carattere di sottolineatura extra dopo il u
. Sembra un problema separato.
Ho lo stesso errore e l'ho risolto includendo nel file quanto segue
#include <stdint.h>
all'inizio del file.
Boost . Config offre questi typedef per i set di strumenti che non li forniscono in modo nativo. La documentazione per questa funzionalità specifica è qui: Tipi interi standard
È disponibile un'implementazione nella pagina del progetto msinttypes - "Questo progetto riempie l'assenza di stdint.he inttypes.h in Microsoft Visual Studio".
Non ho esperienza con questa implementazione, ma l'ho vista consigliata da altri su SO.
Su Windows di solito uso i tipi di Windows. Per usarlo devi includere <Windows.h>
.
In questo caso uint32_t è UINT32 o semplicemente UINT.
Tutte le definizioni dei tipi sono disponibili qui: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx
Ho dovuto eseguire il progetto in VS2010 e non ho potuto introdurre alcuna modifica nel codice. La mia soluzione era installare vS2013 e in VS2010 punto VC ++ Directories-> IncludeDirectories in Program Files (x86) \ Microsoft Visual Studio 12.0 \ VC \ include. Quindi il mio progetto è stato compilato senza problemi.