1

根据Windows 数据类型,除了 IntSafe.h 之外,DWORD 和 DWORD32 都是“32 位无符号整数”,另一个在 BaseTsd.h 中定义。使用其中一种有什么区别或优势?

4

2 回答 2

2

Windows API 充满了数十年的 C#definetypedef碎片。

你看到的是一些碎片。也许在某个时候,他们考虑过有一个DWORD规模化的规模,而DWORD32不会。

但这种希望早已破灭。它们几乎可以肯定是相同的类型,并且几乎可以肯定永远不会变得不相同。

如果你在哪里使用了一些被称为的东西DWORD16DWORD64无论出于什么原因,这个名字DWORD32都适合,或者如果你出于其他原因真的想强调你的类型中的位数DWORD32,那么这种类型可能是一个更好的主意。否则,选择一个,使用它,然后忽略另一个。

于 2013-05-28T14:34:12.987 回答
1

它们是相同的。DWORD为向后兼容数十年的遗留代码而维护,并且始终为 32 位。DWORD32是相同的数据类型,只是明确指出它是 32 位的。与更新 API 以支持 64 位开发时同时引入并被DWORD32引入DWORD64DWORD_PTR

于 2013-05-28T14:50:19.090 回答