【问题标题】:C# ULONG_PTR EquivalentC# ULONG_PTR 等效
【发布时间】:2009-12-21 12:40:48
【问题描述】:

我必须在 C# 的不安全代码中传递 ULONG_PTR

我了解ULONG_PTR 的原因是允许 32 位和 64 位操作系统使用单一代码库。

这是 C# 的UIntPtr 的情况吗?将 .Net UIntPtr 作为 ULONG_PTR 参数传递时,我可以自信吗?

谢谢!

【问题讨论】:

    标签: c# winapi interop types


    【解决方案1】:

    来自MSDN

    IntPtr 类型符合 CLS, 而 UIntPtr 类型不是。仅有的 IntPtr 类型用于常见的 语言运行时。 UIntPtr 类型是 主要用于维护 与 IntPtr 的架构对称 输入

    这两种类型都能够存储 32 位和 64 位指针。首选类型是IntPtr

    【讨论】:

      【解决方案2】:

      根据 MSDN 对它的描述,我会说它应该是:

      UIntPtr 类型被设计为一个整数,其大小是特定于平台的。也就是说,这种类型的实例在 32 位硬件和操作系统上预计为 32 位,在 64 位硬件和操作系统上预计为 64 位。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-26
        • 2017-08-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多