C#中的ULONG_PTR等价类型

8

我需要在C#的不安全代码中传递一个ULONG_PTR

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

这种情况是否适用于C#的UIntPtr?当将.Net的UIntPtr作为ULONG_PTR参数传递时,我能否有信心?

谢谢!

2个回答

9

来自MSDN

IntPtr类型符合CLS标准,而UIntPtr类型不符合。只有IntPtr类型在公共语言运行时中使用。提供UIntPtr类型主要是为了与IntPtr类型保持架构对称性。

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


2
根据MSDN的描述,我认为它应该是这样的:
UIntPtr类型被设计为一个大小与平台相关的整数类型。也就是说,在32位硬件和操作系统上,该类型的实例预计为32位,在64位硬件和操作系统上则为64位。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接