Я переношу код з Linux C на Visual C ++ для Windows.
Visual C ++ не знає, #include <stdint.h>
тому я це прокоментував.
Пізніше я знайшов багато таких 'uint32_t': identifier not found
помилок. Як це можна вирішити?
Я переношу код з Linux C на Visual C ++ для Windows.
Visual C ++ не знає, #include <stdint.h>
тому я це прокоментував.
Пізніше я знайшов багато таких 'uint32_t': identifier not found
помилок. Як це можна вирішити?
uint32_t
цілі типи та інші точні ширини є лише частиною C99 та C ++ 0x, тому старі компілятори (наприклад, Visual C ++ 2008 та раніше) їх не мають.
Відповіді:
Цей тип визначено в заголовку С, <stdint.h>
який є частиною стандарту С ++ 11, але не є стандартом у С ++ 03. Відповідно до сторінки Вікіпедії в заголовку , вона не постачалася з Visual Studio до VS2010.
Тим часом ви, напевно, можете підробити власну версію заголовка, додавши typedef
s, які відображають користувацькі цілі типи Microsoft до типів, очікуваних C. Наприклад:
typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
/* ... etc. ... */
Сподіваюся, це допомагає!
__int32
.
u_int32_t
і uint32_t
не є однотипними; один має додаткове підкреслення після u
. Це здається окремою проблемою.
У мене та сама помилка, і це виправлено, включивши у файл наступне
#include <stdint.h>
на початку вашого файлу.
Підсилення . Config пропонує ці typedefs для наборів інструментів, які не надають їх спочатку. Документація до цієї конкретної функціональності знаходиться тут: Стандартні цілі цілі типи
На сторінці проекту msinttypes є реалізація - "Цей проект заповнює відсутність stdint.h та inttypes.h у Microsoft Visual Studio".
У мене немає досвіду з цим впровадженням, але я бачив, як це рекомендували інші на SO.
У Windows я зазвичай використовую типи Windows. Щоб використовувати його, ви повинні включити <Windows.h>
.
У цьому випадку uint32_t - це UINT32 або просто UINT.
Визначення всіх типів знаходяться тут: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx
Мені довелося запустити проект у VS2010, і я не міг внести будь-які зміни в код. Моїм рішенням було встановити vS2013 і в VS2010 point VC ++ Directories-> IncludeDirectories to Program Files (x86) \ Microsoft Visual Studio 12.0 \ VC \ include. Тоді мій проект був складений без жодних проблем.