2009-12-21 33 views
6

Tôi phải chuyển mã số ULONG_PTR bằng mã không an toàn trong C#.C# ULONG_PTR Tương đương

Tôi hiểu rằng lý do cho ULONG_PTR là cho phép một mã đơn lẻ cho cả hệ điều hành 32 bit và 64 bit.

Đây có phải là trường hợp của C# 'UIntPtr không? Tôi có thể tự tin khi chuyển một .Net UIntPtr làm thông số ULONG_PTR không?

Cảm ơn!

Trả lời

6

Từ MSDN:

Loại IntPtr là CLS-compliant, trong khi các loại UIntPtr thì không. Chỉ có loại IntPtr được sử dụng trong thời gian chạy ngôn ngữ phổ biến. Loại UIntPtr là cung cấp chủ yếu để duy trì đối xứng kiến ​​trúc với IntPtr loại

Cả hai loại đều có khả năng lưu trữ con trỏ 32-bit và 64-bit. Loại ưa thích là IntPtr.

2

Dựa trên mô tả MSDN của nó tôi sẽ nói rằng nó cần được:

Loại UIntPtr được thiết kế để là một số nguyên có kích thước là nền tảng cụ thể. Tức là, một thể hiện kiểu này được mong đợi là 32 bit trên phần cứng và hệ điều hành 32 bit và 64 bit trên phần cứng và hệ điều hành 64 bit.