Linux C'den Windows için Visual C ++ koduna geçiş yapıyorum.
Visual C ++ bilmiyor, #include <stdint.h>
bu yüzden onu yorumladım.
Daha sonra bu 'uint32_t': identifier not found
hataların çoğunu buldum . Nasıl çözülür?
Linux C'den Windows için Visual C ++ koduna geçiş yapıyorum.
Visual C ++ bilmiyor, #include <stdint.h>
bu yüzden onu yorumladım.
Daha sonra bu 'uint32_t': identifier not found
hataların çoğunu buldum . Nasıl çözülür?
uint32_t
Ve diğer kesin genişliği tamsayı türleri, C99 ve C ++ 0 x sadece bir kısmı böylece eski derleyiciler (Visual C ++ gibi 2008 ve öncesi) onları yok.
Yanıtlar:
Bu tür, <stdint.h>
C ++ 11 standardının bir parçası olan ancak C ++ 03'te standart olmayan C başlığında tanımlanır . Başlıktaki Wikipedia sayfasına göre VS2010'a kadar Visual Studio ile birlikte gönderilmemiştir.
Bu arada, Microsoft'un özel tam sayı türlerini C tarafından beklenen türlere eşleyen typedef
URL'ler ekleyerek muhtemelen kendi üstbilgi sürümünüzü taklit edebilirsiniz . Örneğin:
typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
/* ... etc. ... */
Bu yardımcı olur umarım!
__int32
.
u_int32_t
ve uint32_t
aynı türde değildir; birinin altında fazladan bir alt çizgi vardır u
. Bu ayrı bir sorun gibi görünüyor.
Aynı hatayı aldım ve aşağıdaki dosyaya dahil olmak üzere düzeltti
#include <stdint.h>
dosyanızın başında.
Arttırın . Config , bunları yerel olarak sağlamayan araç setleri için bu tür dizileri sunar. Bu özel işlev için dokümantasyon burada: Standart Tamsayı Türleri
Msinttypes proje sayfasında bir uygulama mevcuttur - "Bu proje, Microsoft Visual Studio'da stdint.h ve inttypes.h eksikliklerini doldurur".
Bu uygulamayla ilgili deneyimim yok, ancak SO'da başkaları tarafından önerildiğini gördüm.
Windows'ta genellikle Windows türlerini kullanırım. Kullanmak için eklemeniz gerekir <Windows.h>
.
Bu durumda uint32_t, UINT32 veya sadece UINT'dir.
Tüm tür tanımları burada: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx