Saya mem-porting kode dari Linux C ke Visual C ++ untuk windows.
Visual C ++ tidak tahu #include <stdint.h>
jadi saya berkomentar.
Belakangan, saya menemukan banyak 'uint32_t': identifier not found
kesalahan itu. Bagaimana cara mengatasinya?
Saya mem-porting kode dari Linux C ke Visual C ++ untuk windows.
Visual C ++ tidak tahu #include <stdint.h>
jadi saya berkomentar.
Belakangan, saya menemukan banyak 'uint32_t': identifier not found
kesalahan itu. Bagaimana cara mengatasinya?
uint32_t
dan tipe integer tepat-lebar lainnya hanya bagian dari C99 dan C ++ 0x, kompiler jadi lebih tua (seperti Visual C ++ 2008 dan sebelumnya) tidak memiliki mereka.
Jawaban:
Jenis ini didefinisikan di header C <stdint.h>
yang merupakan bagian dari standar C ++ 11 tetapi bukan standar di C ++ 03. Menurut halaman Wikipedia di header , itu belum dikirimkan dengan Visual Studio hingga VS2010.
Sementara itu, Anda mungkin dapat memalsukan versi tajuk Anda sendiri dengan menambahkan typedef
s yang memetakan jenis bilangan bulat khusus Microsoft ke jenis yang diharapkan oleh C. Misalnya:
typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
/* ... etc. ... */
Semoga ini membantu!
__int32
.
u_int32_t
dan uint32_t
bukan tipe yang sama; satu memiliki garis bawah ekstra setelah u
. Sepertinya itu masalah yang terpisah.
Saya memiliki kesalahan yang sama dan memperbaikinya termasuk dalam file berikut
#include <stdint.h>
di awal file Anda.
Boost . Config menawarkan typedef ini untuk kumpulan alat yang tidak menyediakannya secara asli. Dokumentasi untuk fungsionalitas khusus ini ada di sini: Jenis Integer Standar
Ada implementasi yang tersedia di halaman proyek msinttypes - "Proyek ini mengisi ketiadaan stdint.h dan inttypes.h di Microsoft Visual Studio".
Saya tidak memiliki pengalaman dengan implementasi ini, tetapi saya telah melihatnya direkomendasikan oleh orang lain di SO.
Di Windows saya biasanya menggunakan tipe windows. Untuk menggunakannya, Anda harus menyertakan <Windows.h>
.
Dalam hal ini uint32_t adalah UINT32 atau hanya UINT.
Semua definisi jenis ada di sini: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx
Saya harus menjalankan proyek di VS2010 dan saya tidak dapat memperkenalkan modifikasi apa pun dalam kode. Solusi saya adalah menginstal vS2013 dan di VS2010 titik VC ++ Directories-> IncludeDirectories to Program Files (x86) \ Microsoft Visual Studio 12.0 \ VC \ include. Kemudian proyek saya disusun tanpa masalah apa pun.