web-dev-qa-db-ja.com

「uint32_t」識別子が見つかりませんエラー

Linux CからWindows用のVisual C++にコードを移植しています。

Visual C++は#include <stdint.h>を知らないため、コメントアウトしました。

後で、これらの'uint32_t': identifier not foundエラーがたくさん見つかりました。どうすれば解決できますか?

81
kevin

このタイプは、C++ 11標準の一部ですがC++ 03の標準ではないCヘッダー<stdint.h>で定義されています。 ヘッダーのWikipediaページ によると、VS2010までVisual Studioに同梱されていません。

それまでは、Cが期待する型に Microsoftのカスタム整数型 をマップするtypedefsを追加することにより、おそらく独自のバージョンのヘッダーを作成できます。

typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
/* ... etc. ... */

お役に立てれば!

97
templatetypedef

#include <cstdint>できます。 2011年以降のC++標準の一部です。

73
Tigerle

Boost . Config は、これらをネイティブに提供しないツールセットにこれらのtypedefを提供します。この特定の機能のドキュメントは次のとおりです。 標準整数型

7
ildjarn

私は同じエラーがあり、ファイルに次のものを含めて修正しました

#include <stdint.h>

ファイルの先頭。

6
Nacho Barreto

msinttypesプロジェクトページ -「このプロジェクトは、Microsoft Visual Studioのstdint.hおよびinttypes.hの不在を満たします」で利用可能な実装があります。

私はこの実装の経験はありませんが、SOの他の人から推奨されているのを見てきました。

3
Brandon Leiran

Windowsでは、通常、Windowsタイプを使用します。使用するには、<Windows.h>を含める必要があります。

この場合、uint32_tはUINT32または単にUINTです。

すべてのタイプの定義は次のとおりです。 http://msdn.Microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx

2
ST3

VS2010でプロジェクトを実行する必要があり、コードに変更を加えることはできませんでした。私のソリューションは、vS2013をインストールし、VS2010でVC++ディレクトリ-> IncludeDirectoriesをProgram Files(x86)\ Microsoft Visual Studio 12.0\VC\includeにポイントすることでした。その後、私のプロジェクトは問題なくコンパイルされました。

0
Darqer