Speichern eines 64-Bit-Werts

Verwenden Sie ULONG _ PTR, um einen 64-Bit-Zeigerwert zu speichern. Ein ULONG _ PTR-Wert ist 32 Bits, wenn er mit einem 32-Bit-Compiler kompiliert wird, und 64 Bits, wenn er mit einem 64-Bit-Compiler kompiliert wird.

In den folgenden Beispielen wird realer Code verwendet, der auf 64-Bit-Windows portiert wurde. Die Schritte zur 64-Bit-Kompatibilität des Codes sind enthalten.

Beispiel 1: Abrufen einer Adresse

Der folgende Code veranschaulicht eine portierbare Methode zum Abrufen einer Adresse.

| | | Verwenden von ULONG (eine nur 32-Bit-Methode) |

ULONG getAnAddress( )Int *somePointerReturn( (ULONG) somePointer );
| | Verwenden von ULONG_PTR (portable Methode) |
ULONG_PTR getAnAddress( )Int *somePointerReturn( (ULONG_PTR) somePointer );
|

Beispiel 2: Berechnen einer Adresse

Der folgende Code veranschaulicht eine portable Methode zum Berechnen einer Adresse.

| | | Verwenden von ULONG (eine nur 32-Bit-Methode) |

Int *somePointer;Int *someOtherPointer;somePointer = (int *)( (ULONG)someOtherPointer + 0x20 );
| | Verwenden von ULONG_PTR (portable Methode) |
Int *somePointer;Int *someOtherPointer;somePointer = (int *)( (ULONG_PTR)someOtherPointer + 0x20 );
|