在Windows Mobile和Wince(Windows Embedded CE)下进行Native C++时间函数的运用
2009-12-11 06:47
519 查看
在程序开发中,未免需要使用到时间差比较。最简单的时间比较方法是分别取出当前时间进行相减得出时间差。取出当前时间可以使用GetLocalTime()函数来取出。可是在Windows Mobile和Wince(Windows Embedded CE)平台,使用GetLocalTime()函数取出的SYSTEMTIME是不包含微秒的。解决办法是使用GetTickCount()函数,先看下面的代码。
执行效果如下:
从上图可以看到使用GetLocalTime()函数,不能取出微秒。而GetTickCount()函数可以取出系统启动后的微秒级别的时间间隔(elapsed time),但是有个问题需要注意,如果系统运行长于49.7 天,值回清零。
如果计算时间差的精度需要用到微秒,需要使用GetTickCount()而不是GetLocalTime()。
int _tmain(int argc, _TCHAR* argv[]) { SYSTEMTIME sysTime; GetLocalTime(&sysTime); DWORD tickCount = GetTickCount(); printf("current time = %04d-%02d-%02d %02d:%02d:%02d %d, tick count = %ld\n", sysTime.wYear, sysTime.wMonth, sysTime.wDay, sysTime.wHour, sysTime.wMinute, sysTime.wSecond, sysTime.wMilliseconds, tickCount); Sleep(3000); GetLocalTime(&sysTime); tickCount = GetTickCount(); printf("sleep 3 seconds\ncurrent time = %04d-%02d-%02d %02d:%02d:%02d %d, tick count = %ld\n", sysTime.wYear, sysTime.wMonth, sysTime.wDay, sysTime.wHour, sysTime.wMinute, sysTime.wSecond, sysTime.wMilliseconds, tickCount); return 0; }
执行效果如下:
从上图可以看到使用GetLocalTime()函数,不能取出微秒。而GetTickCount()函数可以取出系统启动后的微秒级别的时间间隔(elapsed time),但是有个问题需要注意,如果系统运行长于49.7 天,值回清零。
如果计算时间差的精度需要用到微秒,需要使用GetTickCount()而不是GetLocalTime()。
相关文章推荐
- 在Windows Mobile和Wince(Windows Embedded CE)下进行Native C++开发,如何取出当前执行文件的路径和调用模块的路径
- 在Windows Mobile和Wince(Windows Embedded CE)下进行Native C++开发,如何取出资源文件中的版本信息
- 在Windows Mobile和Wince(Windows Embedded CE)下进行Win32开发,取出当前所有运行中进程信息的方法
- 在Windows Mobile和Wince(Windows Embedded CE)下进行WTL开发,如何加入超链接(HyperLink)
- 在Windows Mobile和Wince(Windows Embedded CE)下使用.NET Compact Framework进行GPS NMEA data数据分析的开发
- 在Windows Mobile和Wince(Windows Embedded CE)下使用.NET Compact Framework进行GPS NMEA data数据分析的开发
- Windows Mobile和Wince(Windows Embedded CE)下如何封装Native DLL提供给.NET Compact Framework进行调用
- 在Windows Mobile和Wince(Windows Embedded CE)下进行Win32开发,取出窗口句柄的方法
- 在Windows Mobile和Wince(Windows Embedded CE)下Win32项目加入ATL支持
- Windows Mobile 和 Wince(Windows Embedded CE) 下的 WTL(Windows Template Library) 界面(UI)开发
- 开发Windows Mobile和Wince(Windows Embedded CE)的部署项目(Deploy Project)时,如何修改注册表
- 一文讲清楚Windows Mobile和Wince(Windows Embedded CE)的字符集问题
- 一文讲清楚Windows Mobile和Wince(Windows Embedded CE)的字符集问题
- Windows Mobile和Wince(Windows Embedded CE)下的WTL(Windows Template Library)开发
- 在Windows Mobile和Wince(Windows Embedded CE)下如何使用.NET Compact Framework开发进程管理程序
- 一文讲清楚Windows Mobile和Wince(Windows Embedded CE)的字符集问题
- Windows Mobile和Wince(Windows Embedded CE)的字符集问题
- Windows Phone,Windows Mobile,Windows Embedded CE(WinCE),.NET Compact Framework,Native C++开发系列(上百篇原创文章不断更新完善中)
- 在Windows Mobile和Wince(Windows Embedded CE)下使用.NET Compact Framework 取当前运行文件的路径
- Windows Mobile 和 Wince(Windows Embedded CE) 下的 WTL(Windows Template Library) 界面(UI)开发