首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C++高分辨率系统结构,大于ms?

C++高分辨率系统结构,大于ms?
EN

Stack Overflow用户
提问于 2015-09-27 20:09:05
回答 1查看 1.2K关注 0票数 2

我试图了解Windows中的各种高精度计时技术,并将其直接连接到各种API和C++中。

我知道QPC,并且知道GetSystemTimePreciseAsFileTime()对高精度的时间戳使用了相同的技术。然而,GetSystemTimeAsFileTime() API似乎是SQL Server用于获得其高精度时间戳 (即DATETIME2),我觉得这很奇怪。

注意:._是一个非常好的资源。

GetSystemTimePreciseAsFileTime() -- GetSystemTimePreciseAsFileTime函数以尽可能高的精度(<1U)检索当前的系统日期和时间。检索到的信息采用协调世界时(UTC)格式。

我的问题是系统结构

指定日期和时间,为月、日、年、工作日、小时、分钟、秒和毫秒使用单个成员。时间是以协调的世界时间(UTC)或本地时间为单位,具体取决于正在调用的函数。

代码语言:javascript
运行
复制
typedef struct _SYSTEMTIME {
  WORD wYear;
  WORD wMonth;
  WORD wDayOfWeek;
  WORD wDay;
  WORD wHour;
  WORD wMinute;
  WORD wSecond;
  WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME;

这个结构的文档似乎只有毫秒的精度,对结构的wMilliseconds部分进行了注释:

wMilliseconds毫秒。此成员的有效值为0至999。

如果我想将高精度的FILETIME转换成某种SYSTEMTIME结构,我如何保持额外的精度?从FILETIME类型实现自定义转换似乎是一项大任务?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-27 20:16:49

额外的转换非常容易-- (fileTime % 10000)提供了SYSTEMTIME没有的内容(在100 is的步骤中)。所以你可以用它加上一个SYSTEMTIME。

虽然SYSTEMTIME主要用于UI;原始的FILETIME存储起来更小,而且更容易用于多种用途。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32812334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档