В чем разница между типами DWORD и HANDLE в C? - PullRequest
3 голосов
/ 12 марта 2010

У меня есть поток с типом возврата DWORD в C, но затем он обрабатывается указателем типа HANDLE.

В чем разница между этими двумя типами?

Я задаю этот вопрос специально для ANSI C.

Правильно, что DWORD имеет тип uint, а HANDLE имеет значение PVOID, и C позволяет напрямую разыграть DWORD до HANDLE. Но есть ли разница в этих типах или я могу просто сказать, что они одинаковы?

Это вопрос, который был задан во время обсуждения. Я хочу знать, каков правильный ответ.

Ответы [ 2 ]

4 голосов
/ 12 марта 2010

Win32:

  • DWORD 32 бит без знака
  • HANDLE void * (32-битный указатель)

Win64

  • DWORD 32 бит без знака
  • HANDLE void * (64-битный указатель)

НЕ ТОЛЬКО предположить, что вы можете разыгрывать одно на другое. Он будет работать для Win32 и сломаться при портировании на Win64.

0 голосов
/ 12 марта 2010

РУЧКА - это PVOID или пустота * typedef, DWORD - это уинт32. Разве длина void * не зависит от архитектуры памяти (например, x86 и x64)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...