1

この質問に基づいて、C#でLARGE_INTEGERを次のように宣言する方法

[StructLayout(LayoutKind.Absolute, Size=8)]
struct LARGE_INTEGER
{
    [FieldOffset(0)]public Int64 QuadPart;
    [FieldOffset(0)]public UInt32 LowPart;
    [FieldOffset(4)]public Int32 HighPart;
}

以下の私の仮定はULARGE_INTEGER正しいと宣言していますか?

[StructLayout(LayoutKind.Explicit, Size = 8)]
public struct ULARGE_INTEGER
{
    [FieldOffset(0)] public UInt64 QuadPart;
    [FieldOffset(0)] public UInt32 LowPart;
    [FieldOffset(4)] public UInt32 HighPart;
}
4

1 に答える 1

1

これは単にC#の長いものであり、LayoutKind.Explicitフープをジャンプする必要はありません。昔はCおよびC++コンパイラにはネイティブの64ビット型がなかったため、この結合が必要でした。

于 2010-06-16T13:24:31.943 に答える