我不得不在C#中以不安全的代碼傳遞ULONG_PTR
。C#ULONG_PTR相當於
據我所知,ULONG_PTR
的原因是爲了允許32位和64位操作系統的單一代碼庫。
這是C#的UIntPtr
的情況嗎?將.Net UIntPtr
作爲ULONG_PTR
參數傳遞時,我可以有信心嗎?
謝謝!
我不得不在C#中以不安全的代碼傳遞ULONG_PTR
。C#ULONG_PTR相當於
據我所知,ULONG_PTR
的原因是爲了允許32位和64位操作系統的單一代碼庫。
這是C#的UIntPtr
的情況嗎?將.Net UIntPtr
作爲ULONG_PTR
參數傳遞時,我可以有信心嗎?
謝謝!
從MSDN:
的IntPtr的類型是符合CLS, 而UIntPtr類型不是。只有 IntPtr類型用於公共 語言運行時。所述UIntPtr類型是提供主要是爲了保持 建築對稱性與IntPtr的 類型
這兩種類型的能夠存儲32位和64位指針的 。首選的類型是IntPtr
。
基於它的MSDN描述我會說,這應該是:
的UIntPtr類型的設計是一個整數,其大小是特定於平臺。也就是說,這種類型的實例預期在32位硬件和操作系統上爲32位,在64位硬件和操作系統上爲64位。