Winapi 如何在Win32中创建文件时间?
我有一个值Winapi 如何在Win32中创建文件时间?,winapi,int,filetime,Winapi,Int,Filetime,我有一个值\uuu int64,它是一个64位FILETIME值FILETIME具有dwLowDateTime和dwHighDateTime。当我尝试将\uuu int64分配给FILETIME时,我得到了一个C2440。如何将\uuu int64分配给文件时间 或者如何分割\uuu int64,以便将低部分分配给dwLowDateTime,将高部分分配给dwHighDateTime?以下是基本轮廓 __int64 t; FILETIME ft; ft.dwLowDateTime = (DWO
\uuu int64
,它是一个64位FILETIME
值FILETIME
具有dwLowDateTime
和dwHighDateTime
。当我尝试将\uuu int64
分配给FILETIME
时,我得到了一个C2440。如何将\uuu int64
分配给文件时间
或者如何分割
\uuu int64
,以便将低部分分配给dwLowDateTime
,将高部分分配给dwHighDateTime
?以下是基本轮廓
__int64 t;
FILETIME ft;
ft.dwLowDateTime = (DWORD)t;
ft.dwHighDateTime = (DWORD)(t >> 32);
不建议使用方法
ft = *(FILETIME *)(&t);
由于文件时间的巧妙安排,它可以工作,但在可移植性和清晰性方面的牺牲是不值得的。仅在证明急需时使用,并将其包装在资产中以证明其有效。以下是基本概述
__int64 t;
FILETIME ft;
ft.dwLowDateTime = (DWORD)t;
ft.dwHighDateTime = (DWORD)(t >> 32);
__int64 i;
FILETIME ft;
// From __int64 to FILETIME
ft.dwHighDateTime = (DWORD)(i >> 32);
ft.dwLowDateTime = (DWORD)(i & 0xFFFFFFFF);
// From FILETIME to __int64
i = (ft.dwHighDateTime << 32) + ft.dwLowDateTime;
不建议使用方法
ft = *(FILETIME *)(&t);
由于文件时间的巧妙安排,它可以工作,但在可移植性和清晰性方面的牺牲是不值得的。仅在证明急需时使用,并将其包装在资产中以证明其有效。\uu int64 i;
__int64 i;
FILETIME ft;
// From __int64 to FILETIME
ft.dwHighDateTime = (DWORD)(i >> 32);
ft.dwLowDateTime = (DWORD)(i & 0xFFFFFFFF);
// From FILETIME to __int64
i = (ft.dwHighDateTime << 32) + ft.dwLowDateTime;
文件时间ft;
//从_uint64到文件时间
ft.dwHighDateTime=(DWORD)(i>>32);
ft.dwLowDateTime=(DWORD)(i&0xFFFFFFFF);
//从FILETIME到_uint64
i=(ft.dwHighDateTime\uu int64 i;
文件时间ft;
//从_uint64到文件时间
ft.dwHighDateTime=(DWORD)(i>>32);
ft.dwLowDateTime=(DWORD)(i&0xFFFFFFFF);
//从FILETIME到_uint64
i=(ft.dwHighDateTimeMike
您可以使用ULARGE_INTEGER结构将_int64复制到FILETIME中:
__int64 i64;
ULARGE_INTEGER li;
FILETIME ft;
li.QuadPart = i64;
ft.dwHighDateTime = li.HighPart;
ft.dwLowDateTime = li.LowPart;
迈克
您可以使用ULARGE_INTEGER结构将_int64复制到FILETIME中:
__int64 i64;
ULARGE_INTEGER li;
FILETIME ft;
li.QuadPart = i64;
ft.dwHighDateTime = li.HighPart;
ft.dwLowDateTime = li.LowPart;
掩码应为0xFFFFFF。除非在掩码应为0xFFFFFF之前将ft.dwHighDateTime强制转换为_int64,否则第二次转换将不起作用。除非在掩码应为0xFFFFFF之前将ft.dwHighDateTime强制转换为_int64,否则第二次转换将不起作用