如何减去两个LIFETIME?

时间:2012-04-04 10:36:14

标签: c++ windows

我试图在Windows中获取以毫秒为单位的经过时间。我发现这样做的唯一方法是使用FILETIME结构获得自1601年以来100纳秒的数量。但是FILETIME结构将值存储在两个变量中,我想知道如何减去这两个结构,将它们除以10000(得到毫秒)并将结果存储在一个变量中 我正在使用c ++与visual studio 2008 express edition

2 个答案:

答案 0 :(得分:5)

阅读FILETIME的文档:

  

建议您不要在 FILETIME 结构中添加和减去值以获取相对时间。相反,您应该将文件时间的低位和高位部分复制到ULARGE_INTEGER结构,对 QuadPart 成员执行64位算术运算,然后复制 LowPart HighPart 成员进入 FILETIME 结构。

你也有单一号码(QuadPart ULARGE_INTEGER结构的{{1}})。

答案 1 :(得分:0)

FILETIME ft1;
FILETIME ft2;

int iDifferenceInMS = (*((ULONGLONG*)&ft2) - *((ULONGLONG*)&ft1))/10000;