无法从GetSystemTime()获取毫秒

时间:2015-08-11 20:05:15

标签: c++ visual-studio-2008-sp1 platform-builder

我正在尝试打印秒和毫秒分辨率计时,我正在使用GetSystemTime()

这是我的代码:

GetSystemTime(&datetime);
RETAILMSG(1,(_T("Time After Data Sent to USB: %d:%d\r\n"), datetime.wSecond, datetime.wMilliseconds));  

我使用RETAILMSG()打印到平台构建器调试输出,但我只能打印高达秒的分辨率,所以我会看到类似 48:0 的内容,其中毫秒为空白。

我不确定为什么会这样,因为我没有收到任何投诉。我认为它与RETAILMSG()的实现有关。

我是否可以使用这个或替代品来解决毫秒级的问题?

谢谢,

编辑:我在Windows Embedded Compact 7中开发

2 个答案:

答案 0 :(得分:5)

  

毫秒是空白的。

     

我不确定为什么会发生这种情况

GetSystemTime() ImageView对此问题发出以下警告:

  

硬件平台可能不支持毫秒粒度。此函数的调用者不应该依赖于第二个以上的粒度。

答案 1 :(得分:2)

在Windows下,时钟分辨率为is around 15ms

如果你需要毫秒级的分辨率,有一个高性能时钟,你可以测量10μs范围内的时间(见msdn上的here: Acquiring high-resolution time stamps)。