设置SetWaitableTimer相对时间时的算术溢出

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

我希望计时器从当前时间开始发出5分5秒的信号,但是当我将LARGE_INTEGER的QuadPart设置为-3050000000时,variables溢出,当我打印出来时,显示为1244967296.我应该怎么做它从目前的时间信号5分钟(或更多)?

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

从您的链接链接到以下示例:

 LARGE_INTEGER li; li.QuadPart = -3050000000LL; 

“LL”使它成为一个漫长的文字; 没有它,它只是一个int
(你可以使用小写的“l”,但是在许多字体中它们与“1”(一)非常相似)。

 LARGE_INTEGER alarm_after; alarm_after.QuadPart = -1 * (seconds * 10000000LL); printf("Quadpart=%I64x\n", alarm_after.Quadpart);