我必须在C#中传递ULONG_PTR
不安全的代码。
我理解ULONG_PTR
的原因是为32位和64位操作系统提供单一代码库。
这是C#的UIntPtr
的情况吗?将.Net UIntPtr
作为ULONG_PTR
参数传递时,我能否自信?
谢谢!
答案 0 :(得分:6)
来自MSDN:
IntPtr类型符合CLS标准, 虽然UIntPtr类型不是。只要 IntPtr类型用于常见的 语言运行时。 UIntPtr类型是 提供主要是为了维护 与IntPtr建筑对称 型
这两种类型都能够存储32位和64位指针。首选类型为IntPtr
。
答案 1 :(得分:2)
根据MSDN对它的描述我会说它应该是:
UIntPtr类型设计为整数,其大小是特定于平台的。也就是说,这种类型的实例预计在32位硬件和操作系统上为32位,在64位硬件和操作系统上为64位。