HOWTO · C++
Unterschied zwischen DWORD und unsigned Int in C++
In diesem Artikel wird der Unterschied zwischen DWORD, wie es von der Windows-API verwendet wird, und Ganzzahlen ohne Vorzeichen in C++ erläutert. Oft scheinen sie gleich zu sein, aber das war nicht immer der Fall.
Dieser Artikel behandelt die allgemeine Verwendung von DWORD in C++, und es unterscheidet sich grundlegend von unsigned int, obwohl sie derzeit den gleichen Wert haben.
Unterschied zwischen DWORD und unsigned int in C++
Per Definition ist das unsigned int mindestens 16 Bit lang. Das unsigned int ist in der Regel plattformspezifisch.
Das DWORD bedeutet Doppelwort.
Da Microsoft WORD 16 Bit lang ist, ist DWORD plattformübergreifend 32 Bit lang. Außerdem ist DWORD kein Typ in C++; sie ist stattdessen in <windows.h> definiert.
Verwenden Sie ein DWORD, wenn der Code ein DWORD erwartet, obwohl (zum Zeitpunkt des Schreibens dieses Artikels) das unsigned int genauso gut funktionieren würde.
Zukünftige Versionen von C++ könnten eine etwas andere Definition des unsigned int haben (was immer noch den C++-Richtlinien entsprechen würde), während sich das DWORD wahrscheinlich nicht ändern wird.
Microsoft hat sich entschieden, sein DWORD zu definieren, und warum viele andere API-Entwickler sich dafür entscheiden, ihre Typen zu definieren.
Microsoft musste die Probleme unterschiedlicher CPU-Architekturen umgehen, d. h. 16-Bit- und 32-Bit-Prozessoren und in letzter Zeit 64-Bit-Prozessoren.
In den 1980er Jahren waren C++-Compiler ebenfalls nicht standardisiert. Es war ein gewisses Maß an Kompatibilität zwischen verschiedenen Betriebssystemen erforderlich.
Darüber hinaus wurde dieselbe Entwicklungs-API (jetzt bekannt als WinAPI) für Desktops, mobile Chips, eingebettete Systeme und Server verwendet.
Daher haben Typdefinitionen wie DWORD beim Arbeiten zwischen verschiedenen Systemen, Programmiersprachen, Compilern usw. geholfen.