1

http://msdn.microsoft.com/en-us/library/windows/desktop/ms686289%28v=vs.85%29.aspx

タイマーが現在の時刻から 5 分 5 秒の信号を開始するようにしたいのですが、LARGE_INTEGER の QuadPart を -3050000000 に設定すると、変数がオーバーフローし、出力すると 1244967296 と表示されます。現在時刻から 5 分 5 秒 (またはそれ以上) 後ですか?

LARGE_INTEGER li;
li.QuadPart = -3050000000;
printf( "%ld\n", li );
4

2 に答える 2

5

あなたのリンクからリンクされた例に従ってください:

LARGE_INTEGER li;
li.QuadPart = -3050000000LL;  

「LL」は長い長いリテラルになります。それがなければ、それは単なるint.
(小文字の "l" を使用できますが、多くのフォントでは "1" (1) と非常によく似ています)。

于 2012-06-19T09:39:48.017 に答える
4
LARGE_INTEGER alarm_after;  
alarm_after.QuadPart =  -1 * (seconds * 10000000LL);
printf("Quadpart=%I64x\n", alarm_after.Quadpart);
于 2012-06-19T09:46:18.827 に答える