DWORDLONG und LONGLONG sind die Typbezeichner für vorzeichenlose und vorzeichenbehaftete 64-bit-Werte. Bei 32-bit-Werten ist es schon wichtig, ob man mit oder ohne Vorzeichen arbeitet, gerade wenn man den Wertebereich voll ausschöpfen muss. Daher bin ich da immer recht konsequent und nehme für Zahlen, die nur positiv sein sollen, immer ein DWORD bzw. ein UINT.
| Bit | Typenbezeichner | Vorzeichen | Untere Grenze | Obere Grenze |
|---|---|---|---|---|
| 32 | int UINT oder DWORD |
signed unsigned |
-2147483648 0 |
2147483647 4294967294 |
| 64 | LONGLONG DWORDLONG |
signed unsigned |
-9223372036854775808 0 |
9223372036854775807 18446744073709551615 |
Bei 64-bit-Werten scheint es im Moment aber noch nicht auf das letzte Bit anzukommen. In der Dokumentation zu SetFilePointer wird auch explizit nur von vorzeichenbehafteten 64-bit-Werten gesprochen. Immerhin ist 9.223.372.036.854.775.807 das 2.147.483.649-fache des Maximums eines vorzeichenlosen 32-bit-Wertes. Eigentlich sollte das für die nächsten 20 Jahre doch dicke ausreichen, oder?

ULONGLONG klingt witzischer