Compartir a través de


Almacenamiento de un valor de 64 bits

Para almacenar un valor de puntero de 64 bits, use ULONG_PTR. Un valor de ULONG_PTR es de 32 bits cuando se compila con un compilador de 32 bits y 64 bits cuando se compila con un compilador de 64 bits.

En los ejemplos siguientes se usa código real que se ha migrado a Windows de 64 bits. Se incluyen comentarios sobre los pasos para que el código sea compatible con 64 bits.

Ejemplo 1: Obtener una dirección

En el código siguiente se muestra una manera portátil de obtener una dirección.

Método Resultado
Uso de ULONG (un método de solo 32 bits)
ULONG getAnAddress( )Int *somePointerReturn( (ULONG) somePointer );
Uso de ULONG_PTR (el método portátil)
ULONG_PTR getAnAddress( )Int *somePointerReturn( (ULONG_PTR) somePointer );

 

Ejemplo 2: Calcular una dirección

En el código siguiente se muestra una manera portátil de calcular una dirección.

Método Resultado
Uso de ULONG (un método de solo 32 bits)
Int *somePointer;Int *someOtherPointer;somePointer = (int *)( (ULONG)someOtherPointer + 0x20 );
Uso de ULONG_PTR (el método portátil)
Int *somePointer;Int *someOtherPointer;somePointer = (int *)( (ULONG_PTR)someOtherPointer + 0x20 );