什么是dwLowDateTime和dwHighDateTime

Aar*_*ron 2 winapi

我知道它们是FileTime结构中的变量,但文件时间的低阶和高阶部分是什么?

Dav*_*nan 8

较旧的编译器不支持64位类型.因此,该结构将64位值分成两个32位部分.低部分包含最低有效32位.高部分包含最重要的32位.

因此,如果您有两个32位部分,则相应的64位值为

low + 2^32 * high
Run Code Online (Sandbox Code Playgroud)

官方提到的从两个32位部分获得64位值的方法是通过ULARGE_INTEGERunion.

FILETIME文档:

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

不要将指向FILETIME结构的指针强制转换为ULARGE_INTEGER*或__int64*值,因为它可能导致64位Windows上的对齐错误.