Partilhar via


Armazenando um valor de 64 bits

Para armazenar um valor de ponteiro de 64 bits, use ULONG_PTR. Um valor ULONG_PTR é de 32 bits quando compilado com um compilador de 32 bits e 64 bits quando compilado com um compilador de 64 bits.

Os exemplos a seguir usam código do mundo real que foi portado para o Windows de 64 bits. Comentários sobre as etapas para tornar o código compatível com 64 bits estão incluídos.

Exemplo 1: Obtendo um endereço

O código a seguir ilustra uma maneira portátil de obter um endereço.

Método Result
Usando ULONG (um método somente de 32 bits)
ULONG getAnAddress( )Int *somePointerReturn( (ULONG) somePointer );
Usando ULONG_PTR (o método portátil)
ULONG_PTR getAnAddress( )Int *somePointerReturn( (ULONG_PTR) somePointer );

 

Exemplo 2: Calculando um endereço

O código a seguir ilustra uma maneira portátil de calcular um endereço.

Método Result
Usando ULONG (um método somente de 32 bits)
Int *somePointer;Int *someOtherPointer;somePointer = (int *)( (ULONG)someOtherPointer + 0x20 );
Usando ULONG_PTR (o método portátil)
Int *somePointer;Int *someOtherPointer;somePointer = (int *)( (ULONG_PTR)someOtherPointer + 0x20 );