我正在将代码从Linux C移植到Visual C ++ for windows。
Visual C ++不知道#include <stdint.h>
所以我对它进行了评论。
后来,我发现了很多'uint32_t': identifier not found
错误。怎么解决?
答案 0 :(得分:94)
此类型在C头<stdint.h>
中定义,它是C ++ 11标准的一部分,但在C ++ 03中不是标准。根据{{3}},直到VS2010才会附带Visual Studio。
与此同时,您可以通过将typedef
映射到{C}预期的类型typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
/* ... etc. ... */
来伪造您自己的标头版本。例如:
{{1}}
希望这有帮助!
答案 1 :(得分:70)
你可以#include <cstdint>
。它是自2011年以来C ++标准的一部分。
答案 2 :(得分:7)
Boost。Config为那些本身不提供它们的工具集提供这些typedef。此特定功能的文档位于:Standard Integer Types
答案 3 :(得分:6)
我有同样的错误,它修复了包括在文件中的以下
#include <stdint.h>
在文件的开头。
答案 4 :(得分:3)
msinttypes project page有一个实现 - “这个项目填补了Microsoft Visual Studio中缺少stdint.h和inttypes.h”。
我没有这方面的实践经验,但是我已经看到其他人推荐了它。
答案 5 :(得分:2)
在Windows上我通常使用Windows类型。要使用它,您必须包含<Windows.h>
。
在这种情况下,uint32_t是UINT32或只是UINT。
所有类型定义均在此处:http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx
答案 6 :(得分:0)
我必须在VS2010中运行项目,我无法在代码中引入任何修改。我的解决方案是安装vS2013并在VS2010中安装VC ++目录 - &gt; IncludeDirectories到Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ include。然后我的项目编译没有任何问题。