FILETIME on x64
本文关键字:x64 on FILETIME | 更新日期: 2023-09-27 17:57:31
我正在使用此FILETIME结构进行interop:
[StructLayout(LayoutKind.Explicit)]
public struct FILETIME
{
[FieldOffset(0)]
public int dwLowDateTime;
[FieldOffset(4)]
public int dwHighDateTime;
[FieldOffset(0)]
public long QuadDateTime;
}
它似乎能在x86上工作(现在还不能测试),但它能在x64上工作吗。我使用四分之一在DateTime和FILETIME之间转换。
应该没问题。在.NET中,数据类型的大小是固定的,与底层体系结构(x86或x64)无关。您的结构将始终为8字节大小。
它可以在x64上工作,但可能无法在其他处理器体系结构上工作(例如,如果您关心它的话,IA64)。
在win32中,FILETIME是4字节对齐的。如果在要求64位long
为8字节对齐的体系结构上运行,则访问QuadDataTime字段可能会导致异常。