Linux CからVisual C ++ for Windowsにコードを移植しています。
Visual C ++にはわからない#include <stdint.h>
のでコメントにしました。
後で、それらの'uint32_t': identifier not found
エラーの多くを見つけました。どうすれば解決できますか?
Linux CからVisual C ++ for Windowsにコードを移植しています。
Visual C ++にはわからない#include <stdint.h>
のでコメントにしました。
後で、それらの'uint32_t': identifier not found
エラーの多くを見つけました。どうすれば解決できますか?
uint32_t
そして他の正確な幅の整数型は、C99やC ++ 0xのの一部でしかありませんので、古いコンパイラ(のVisual C ++ 2008のような以前)にそれらを持っていません。
回答:
このタイプは<stdint.h>
、C ++ 11標準の一部であるCヘッダーで定義されていますが、C ++ 03の標準ではありません。ヘッダーのWikipediaページによると、 VS2010までVisual Studioに同梱されていません。
それまでの間、Microsoftのカスタム整数型をCが期待する型にtypedef
マップするを追加することにより、ヘッダーの独自のバージョンを偽造することができます。次に例を示します。
typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
/* ... etc. ... */
お役に立てれば!
__int32
。
u_int32_t
そして、uint32_t
同じタイプではありません。1つはu
。の後に余分なアンダースコアがあります。それは別の問題のようです。
私は同じエラーを抱えており、それを次のファイルに含めて修正しました
#include <stdint.h>
ファイルの先頭。
msinttypesプロジェクトページで利用可能な実装があります -「このプロジェクトは、Microsoft Visual Studioのstdint.hとinttypes.hの不在を埋めます」。
私はこの実装の経験はありませんが、SOで他の人が推奨するのを見てきました。
Windowsでは通常、Windowsタイプを使用します。使用するには、を含める必要があります<Windows.h>
。
この場合、uint32_tはUINT32または単にUINTです。
すべてのタイプの定義はここにあります:http : //msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx