Przenoszę kod z Linux C na Visual C ++ dla Windows.
Visual C ++ tego nie wie, #include <stdint.h>
więc zakomentowałem to.
Później znalazłem wiele takich 'uint32_t': identifier not found
błędów. Jak można to rozwiązać?
c++
c
visual-c++
kevin
źródło
źródło
uint32_t
i inne typy liczb całkowitych o dokładnej szerokości są tylko częścią C99 i C ++ 0x, więc starsze kompilatory (takie jak Visual C ++ 2008 i wcześniejsze) ich nie mają.Odpowiedzi:
Ten typ jest zdefiniowany w nagłówku C,
<stdint.h>
który jest częścią standardu C ++ 11, ale nie jest standardem w C ++ 03. Zgodnie ze stroną Wikipedii w nagłówku , nie był on dostarczany z programem Visual Studio do VS2010.W międzyczasie prawdopodobnie możesz sfałszować własną wersję nagłówka, dodając
typedef
s, które mapują niestandardowe typy liczb całkowitych firmy Microsoft do typów oczekiwanych przez C. Na przykład:typedef __int32 int32_t; typedef unsigned __int32 uint32_t; /* ... etc. ... */
Mam nadzieję że to pomoże!
źródło
__int32
.u_int32_t
iuint32_t
nie są tego samego typu; po znakuu
. Wydaje się, że to osobny problem.Możesz
#include <cstdint>
. Jest częścią C ++ - standardu od 2011 roku.źródło
Mam ten sam błąd i naprawiłem go włączając w pliku następujący
#include <stdint.h>
na początku pliku.
źródło
Wzmocnij . Config oferuje te typy definicji dla zestawów narzędzi, które nie zapewniają ich natywnie. Dokumentacja dotycząca tej konkretnej funkcji jest dostępna tutaj: Standardowe typy liczb całkowitych
źródło
Na stronie projektu msinttypes dostępna jest implementacja - „Ten projekt wypełnia brak stdint.h i inttypes.h w Microsoft Visual Studio”.
Nie mam doświadczenia z tą implementacją, ale widziałem ją polecaną przez innych na SO.
źródło
W systemie Windows zwykle używam typów okien. Aby z niego skorzystać, musisz dołączyć
<Windows.h>
.W tym przypadku uint32_t to UINT32 lub po prostu UINT.
Wszystkie definicje typów są tutaj: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx
źródło
Musiałem uruchomić projekt w VS2010 i nie mogłem wprowadzić żadnych modyfikacji w kodzie. Moim rozwiązaniem była instalacja vS2013, aw VS2010 punkt VC ++ Directories-> IncludeDirectories to Program Files (x86) \ Microsoft Visual Studio 12.0 \ VC \ include. Wtedy mój projekt skompilował się bez żadnych problemów.
źródło