다음을 통해 공유


64비트 값 저장

64비트 포인터 값을 저장하려면 ULONG_PTR 사용합니다. ULONG_PTR 값은 32비트 컴파일러로 컴파일할 때 32비트이고 64비트 컴파일러로 컴파일될 때는 64비트입니다.

다음 예제에서는 64비트 Windows로 이식된 실제 코드를 사용합니다. 코드 64비트 호환을 위한 단계에 대한 설명이 포함되어 있습니다.

예제 1: 주소 가져오기

다음 코드에서는 주소를 가져오는 이식 가능한 방법을 보여 줍니다.

메서드 결과
ULONG 사용(32비트 전용 메서드)
ULONG getAnAddress( )Int *somePointerReturn( (ULONG) somePointer );
ULONG_PTR 사용(이식 가능한 방법)
ULONG_PTR getAnAddress( )Int *somePointerReturn( (ULONG_PTR) somePointer );

 

예제 2: 주소 계산

다음 코드에서는 주소를 계산하는 이식 가능한 방법을 보여 줍니다.

메서드 결과
ULONG 사용(32비트 전용 메서드)
Int *somePointer;Int *someOtherPointer;somePointer = (int *)( (ULONG)someOtherPointer + 0x20 );
ULONG_PTR 사용(이식 가능한 방법)
Int *somePointer;Int *someOtherPointer;somePointer = (int *)( (ULONG_PTR)someOtherPointer + 0x20 );