c++ - 负的 dwLowDateTime 在 FILETIME 结构中意味着什么?

标签 c++ c winapi datetime

我知道 FILETIME 结构从 1601 年 1 月 1 日开始以 100 纳秒的步长形成日期时间值。但是 dwLowDateTime 的值小于 0 是什么意思???

最佳答案

这意味着您将其视为 int 而不是 unsigned int,因此它可以显示负值。

正如 Matteo Italia 所说,您最好将其放在 ULARGE_INTEGER 中,如下所示:

ULARGE_INTEGER uli;
uli.LowPart  = ft.dwLowDateTime;
uli.HighPart = ft.dwHighDateTime;
__int64 filetime64 = uli.QuadPart;

您甚至可以按如下方式使用 memcpy 执行此操作:

__int64 fileTime64;
memcpy( &fileTime64, &ft, sizeof( __int64 ) );

关于c++ - 负的 dwLowDateTime 在 FILETIME 结构中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13123322/

相关文章:

c++ - 模块化操作 (%) 提供错误输出

c++ - 通过赋值运算符返回字符数组

c++ - C++内存地址的奇怪现象

c++ - 您将如何在 C++/C 中解出 x 的数学方程

C++/WinAPI - 从 DWORD 中删除标志(按位运算符?)

c++ - 生成随机位的最快方法

c - 如何更正这些 "Expected Expression Before ' Stack '"and "Not Enough Arguments to Function 'Push' 错误?

c++ - 为什么大型本地数组会使我的程序崩溃,而全局数组却不会?

windows - 如何在 32 位应用程序中获取 64 位系统文件夹?

c++ - 使用控件绘制窗口