- 2012-2-15
- Visual C++
LONGLONG型を%dしても当然だが上手く表示されない。%dは4バイトだから。
LONGLONG型は別の型指定をしないと駄目。
LONGLONG nn = LLONG_MAX;
printf( “%I64d\n”,nn);
『%I64d』、『%I64u』、『%I64o』、『%I64x』
を使いましょう。
※追記
VC2005では %lld ってのもあるみたいです。
しかし%lldってのは下位互換しないようなので%I64d の方を使う方がお利口さんだと思います。
また、ちょっと横道にそれますがHWNDをintにキャストしようとするとワーニングが出ます。
これはVC2003?あたりから64ビット対応マシンを見据えたコンパイラになった為です。
こういうときにはLONGLONGをつかいましょう。
//int nhWnd = (int)this->GetSafeHwnd(); //こいつはわーにんぐ
LONGLONG llhWnd = (LONGLONG)this->GetSafeHwnd();
数字型に変換されたハンドルはこう使います。
HWND hwnd = (HWND)llhWnd;