我只安装了 32 位 Windows,所以我无法自己验证这一点。
如果我理解正确的话,微软API中各个地方使用的DWORD是指原始的16位字,与当前的硬件架构无关?
因此,即使我最终编译并链接我的应用程序以在 64 位 Windows 中运行,看起来 32 位的 DWORD 仍将保持 32 位?或者 DWORD 会变成 128 位宽吗?
我只安装了 32 位 Windows,所以我无法自己验证这一点。
如果我理解正确的话,微软API中各个地方使用的DWORD是指原始的16位字,与当前的硬件架构无关?
因此,即使我最终编译并链接我的应用程序以在 64 位 Windows 中运行,看起来 32 位的 DWORD 仍将保持 32 位?或者 DWORD 会变成 128 位宽吗?
唯一在 32 和 64 之间改变大小的是指针。所以 DWORD 保持 32 位宽。
有些东西不是立即明显的指针,例如 HANDLE、LPARAM、WPARAM。但是这三个改变宽度,因为它们实际上持有指针。
DWORD 始终为 32 位(无符号)。QWORD 始终为 64 位(无符号)。然后是 32 位和 64 位的 DWORD32 和 DWORD64。不要问我他们为什么在那里:-)
http://msdn.microsoft.com/en-us/library/cc230318(v=PROT.10).aspx
http://msdn.microsoft.com/en-us/library/cc230362(v=PROT.10).aspx
总的来说
http://msdn.microsoft.com/en-us/library/cc230309(v=PROT.10).aspx
在 x86 处理器上,DWORD 是 32 位,即使在 64 位 Windows 上也是如此。请参阅此维基百科文章。
我什至会比 x86 架构更进一步。并且一般来说,一个WORD可以被认为是16位。传统的层次结构是 BYTE(8 位)、WORD(16 位),因此 DWORD(如果 D 被视为双宽 WORD)将是 32 位。这不一定与特定的平台或语言有关,一个 BYTE 是 8 位,一个 WORD 是 16 位,可以追溯到旧的 8 位计算机时代,甚至在 x86 架构之前。存在