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