C 中的 DWORD 和 HANDLE 类型有什么区别?

Bad*_*adr 4 c windows

我DWORD在 C 中有一个返回类型的线程,但它随后由HANDLE类型指针处理。

这两种类型有什么区别?

我是专门为 ANSI C 提出这个问题的。

这是正确的,DWORD是uint类型,HANDLE是PVOID,和C允许直接施放DWORD到HANDLE。但是这些类型有什么不同吗,或者我可以简单地说它们是相同的吗?

这是在讨论中提出的一个问题。我想知道正确答案是什么。

Ste*_*ett 5

Win32:

  • DWORD 32 位无符号长整型
  • HANDLE void *(32 位指针)

Win64

  • DWORD 32 位无符号长整型
  • HANDLE void *(64 位指针)

不要只是假设您可以将一个转换为另一个。它将适用于 Win32 并在您将其移植到 Win64 时中断。