在Windows Mobile和Wince(Windows Embedded CE)下进行Native C++时间函数的运用

简介:

在程序开发中,未免需要使用到时间差比较。最简单的时间比较方法是分别取出当前时间进行相减得出时间差。取出当前时间可以使用GetLocalTime()函数来取出。可是在Windows Mobile和Wince(Windows Embedded CE)平台,使用GetLocalTime()函数取出的SYSTEMTIME是不包含微秒的。解决办法是使用GetTickCount()函数,先看下面的代码。

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

从上图可以看到使用GetLocalTime()函数,不能取出微秒。而GetTickCount()函数可以取出系统启动后的微秒级别的时间间隔(elapsed time),但是有个问题需要注意,如果系统运行长于49.7 天,值回清零。

如果计算时间差的精度需要用到微秒,需要使用GetTickCount()而不是GetLocalTime()。



    本文转自Jake Lin博客园博客,原文链接:http://www.cnblogs.com/procoder/archive/2009/12/11/Windows-Mobile-GetLocalTime-GetTickCount.html,如需转载请自行联系原作者



相关文章
|
6月前
|
人工智能 机器人 C++
【C++/Python】Windows用Swig实现C++调用Python(史上最简单详细,80岁看了都会操作)
【C++/Python】Windows用Swig实现C++调用Python(史上最简单详细,80岁看了都会操作)
137 0
|
6月前
|
关系型数据库 数据库 C++
【C++】Windows使用Visual Studio C++链接云数据库PostgreSQL(沉浸式老爷教学)
【C++】Windows使用Visual Studio C++链接云数据库PostgreSQL(沉浸式老爷教学)
|
6月前
|
人工智能 机器人 编译器
【C++】Windows端VS code中运行CMake工程(手把手教学)
【C++】Windows端VS code中运行CMake工程(手把手教学)
386 0
|
3月前
|
开发框架 JavaScript .NET
【Azure 应用服务】Azure Mobile App (NodeJS) 的服务端部署在App Service for Windows中出现404 Not Found
【Azure 应用服务】Azure Mobile App (NodeJS) 的服务端部署在App Service for Windows中出现404 Not Found
|
3月前
|
安全 C++ Windows
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
|
5月前
|
安全 API C++
逆向学习Windows篇:C++中多线程的使用和回调函数的实现
逆向学习Windows篇:C++中多线程的使用和回调函数的实现
186 0
|
5月前
|
C++ UED 开发者
逆向学习 MFC 篇:视图分割和在 C++ 的 Windows 窗口程序中添加图标的方法
逆向学习 MFC 篇:视图分割和在 C++ 的 Windows 窗口程序中添加图标的方法
81 0
|
6月前
|
编译器 C语言 C++
VSCode上搭建C/C++开发环境(vscode配置c/c++环境)Windows系统---保姆级教程
VSCode上搭建C/C++开发环境(vscode配置c/c++环境)Windows系统---保姆级教程
|
3天前
|
网络安全 Windows
Windows server 2012R2系统安装远程桌面服务后无法多用户同时登录是什么原因?
【11月更文挑战第15天】本文介绍了在Windows Server 2012 R2中遇到的多用户无法同时登录远程桌面的问题及其解决方法,包括许可模式限制、组策略配置问题、远程桌面服务配置错误以及网络和防火墙问题四个方面的原因分析及对应的解决方案。