将 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/