API Windows 64 bits: quelle est la taille d’un “DWORD” C / C ++?

Je ne dispose que de Windows 32 bits, donc je ne peux pas le vérifier moi-même.

Si je comprends bien, le DWORD utilisé à différents endroits de l’API Microsoft fait référence au mot d’origine de 16 bits et n’a rien à voir avec l’architecture matérielle actuelle?

Donc, DWORD, qui semble être de 32 bits, restra 32 bits même si je comstack et associe éventuellement mon application pour qu’elle fonctionne sous Windows 64 bits? Ou DWORD deviendra-t-il de 128 bits?

La seule chose qui change de taille entre 32 et 64 sont les pointeurs. Donc, DWORD rest large de 32 bits.

Certaines choses ne sont pas toujours évidentes, par exemple HANDLE, LPARAM, WPARAM. Mais ces trois changent de largeur car ils contiennent des pointeurs.

Oh mon Dieu, voici une autre question raisonnable … 🙂

Il est toujours de 32 bits, car un “mot” est considéré comme 16 bits dans x86. Les programmes se briseraient si la taille changeait.

Si vous avez besoin d’un DWORD taille native, essayez DWORD_PTR .

( Ne demandez pas quelle est la différence entre DWORD_PTR , ULONG_PTR , UINT_PTR et size_t ; je n’ai aucune idée de ce que Microsoft pensait quand il a inventé les trois premiers …)

DWORD est toujours 32 bits (non signé). QWORD est toujours 64 bits (non signé). Ensuite, il y a le DWORD32 et un DWORD64 de 32 et 64 bits. Ne me demandez pas pourquoi ils sont là 🙂

http://msdn.microsoft.com/en-us/library/cc230318(v=PROT.10).aspx

http://msdn.microsoft.com/en-us/library/cc230362(v=PROT.10).aspx

et en général

http://msdn.microsoft.com/en-us/library/cc230309(v=PROT.10).aspx

Sur les processeurs x86, un DWORD est 32 bits, même sur Windows 64 bits. Voir cet article Wikipedia .

Je voudrais même aller plus loin que x86 arch. et dire en général, un mot peut être considéré comme 16 bits. La hiérarchie a traditionnellement été BYTE (8 bits), WORD (16 BITS), et un DWORD (si D est considéré comme un WORD double largeur) serait de 32 bits. Cela n’a pas forcément de rapport avec une plate-forme ou un langage particulier, un BYTE a été de 8 bits et un WORD de 16 bits remontant aux anciens jours d’ordinateur de 8 bits, même avant l’arc x86. existé