绝对高难度的问题!
在程序中用到了多媒体时钟:timeGetTime().主要是因为要精确到毫秒。但现在发现一个严重的问题。因为timeGetTime()是从Windows启动的时候开始计时的,而返回值是一个DWORD类型。当系统运行49.71天之后,就会产生越界。在Win98第一版中就必须要重起机器!但据说Windows 98及后来版本都有了补丁。可谁知道Windows自己是怎么处理的?难道在49.71天后又重置了值。可是如果我做减法,前一个时间是2的32次幂减一,后一个是0,我的程序就要崩溃了!
谁能够解决?当然,也可以用GetLocalTime得到毫秒,但不知准不准。况且做精确到毫秒的时间减法巨复杂(如果你够高手,不妨提供一个效率高的时间减法算法),因为要做很多的判断(ms,s,mi,h,d,m,y).
虽然我只有区区20分,但还请高手指点!神啊,救救我吧!