【问题标题】:How to declare ULARGE_INTEGER in c#?如何在 C# 中声明 ULARGE_INTEGER?
【发布时间】:2010-06-16 13:21:28
【问题描述】:

基于这个问题How to declarate LARGE_INTEGER in C#answer 的:

[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;
}

【问题讨论】:

    标签: c# c++ declare unsigned-integer


    【解决方案1】:

    它只是一个C#中的ulong,不需要跳过LayoutKind.Explicit箍。联合是必要的,因为 C 和 C++ 编译器在过去没有原生 64 位类型。

    【讨论】:

    • 所以只需将所有声明换成UInt64 (ulong) 就可以了?
    • 完全忘记结构声明。
    • 太好了,谢谢!我也为Int64 放弃了LARGE_INTEGER
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-22
    • 2021-03-03
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 2015-03-20
    • 2011-06-23
    相关资源
    最近更新 更多