FILETIME 结构转换为 __int64 的正确方法是什么?你能告诉我吗?

最佳答案

我不认为您应该:“不要将指向 FILETIME 结构的指针转换为 ULARGE_INTEGER*__int64* 值,因为它会导致 64 位 Windows 上的对齐错误。”

Source.

如果你真的想要它会是这样的:

__int64 to_int64(FILETIME ft)
{
    return static_cast<__int64>(ft.dwHighDateTime) << 32 | ft.dwLowDateTime;
}

FILETIME ft = // ...
__int64 t = to_int64(ft);

但类似:
FILETIME ft = // ...
__int64 t = *reinterpet_cast<__int64*>(&ft);

不好。

关于c++ - FILETIME 到 __int64,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1566645/

10-16 04:23