- ベストアンサー
ディスクの空き容量を得たい2
下で質問したのですが、画像が貼れなかったので もうひとつトピックを立てましたすいません %d から %llu に変更したところ 無事値は表示されましたが h1.QuadPart の値ではなく h1.LowPart の値が表示されました #include <windows.h> #include <stdio.h> void main() { ULARGE_INTEGER h1; ULARGE_INTEGER h2; ULARGE_INTEGER h3; GetDiskFreeSpaceEx( NULL, &h1, &h2, &h3 ); printf( "h1.QuadPart: %llu\n", h1.QuadPart ); LONGLONG i = h1.QuadPart; printf( "%llu\n", i ); } また、LONGLONG i に 代入して再表示しても やはり h1.QuadPart の値ではなく h1.LowPart の値が代入されていました これはいったいどういうことでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- machongola
- ベストアンサー率60% (434/720)
回答No.3
- machongola
- ベストアンサー率60% (434/720)
回答No.2
お礼
解答ありがとうございます 使用しているコンパイラはVisualC++6.0で、OSはXP Home Editionです 確認の方法ですが、上の画像で赤で囲ってありますが デバック機能のブレークポイントにて h1の変数の中身を見ました (画質が荒いので見えにくいですが・・・) dir コマンドでは 16,929,587,776 バイトの空きとでました デバックで一時的に止め h1 変数の中身を確認したところ h1.QuadPart = 16,929,587,776 h1.LowPart = 4,043,837,440 とでました この状態で LONGLONG i = h1.QuadPart としたところ i には 16,929,587,776 が代入されましたが (ブレークポイントにて一時的に止め確認) printf にて表示を行うと 4,043,837,440 とでるのです そこがよくわからないのです