2009-12-21 4 views
6

ULONG_PTR을 C#의 안전하지 않은 코드로 전달해야합니다.C# ULONG_PTR 동등한

ULONG_PTR의 이유는 32 비트 및 64 비트 운영 체제 모두에 대해 단일 코드베이스를 허용한다는 것입니다.

이 경우 C#의 경우 UIntPtr입니까? .Net UIntPtrULONG_PTR 매개 변수로 전달할 때 확신 할 수 있습니까?

감사합니다. 그것의 MSDN의 설명을 바탕으로

답변

6

다음 UIntPtr 형식은 아니지만

을 IntPtr 형식은 CLS 규격, 입니다. 경우에만 공용 언어 런타임에서 IntPtr 형식이 사용됩니다. UIntPtr 형식 주로

두 유형은 32 비트 및 64 비트 포인터를 저장할 수있는 유형을 IntPtr 구조적 대칭성을 유지하기 위해 제공 이다. 선호하는 유형은 IntPtr입니다.

2

나는 그것이해야한다고 말할 것이다 :

UIntPtr 형식이 크기가 플랫폼 고유의 정수가 될 수 있도록 설계되었습니다. 즉,이 유형의 인스턴스는 32 비트 하드웨어 및 운영 체제에서는 32 비트이고, 64 비트 하드웨어 및 운영 체제에서는 64 비트가 될 것으로 예상됩니다. MSDN에서