ULONG_PTR vs DWORD_PTR

Тема в разделе "WASM.WIN32", создана пользователем steelfactor, 4 июл 2011.

  1. steelfactor

    steelfactor New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    501
    Всем привет
    Объясните недалекому, есть ли какая-то принципиальная разница между употреблением в коде ULONG_PTR или DWORD_PTR (под x86)? Я так понимаю, разница только появляется при приведении типов?
     
  2. qqqqqq

    qqqqqq New Member

    Публикаций:
    0
    Регистрация:
    4 июл 2011
    Сообщения:
    14
    разницы нет никакой, и то и другое 32-битные указатели на 32-битные целочисленные значения
     
  3. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    Вроде в 64-битной системе ULONG_PTR приведётся к 64-м битам, а DWORD_PTR - останется 32-битным.
    Имеет значение, если перекомпилировать 32-битный код в 64-битную систему.
     
  4. steelfactor

    steelfactor New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    501
    AsmGuru62
    Спасибо!
     
  5. Honorary_BoT

    Honorary_BoT New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2008
    Сообщения:
    87
    Код (Text):
    1. typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR;
     
  6. hewr

    hewr New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2009
    Сообщения:
    19
    Не верно, и то и то может играть роль указателя (постфикс _PTR указывает именно на это), в х86 битах будет 32 бита, в х64 - 64 соответственно. Но имхо более универсальнее юзать size_t, он есть везде, и выполняет ту же роль, поэтому при практичеком его использовании можно съекономить себе время при портировании.
     
  7. Ezrah

    Ezrah Member

    Публикаций:
    0
    Регистрация:
    22 мар 2011
    Сообщения:
    411
    Ну не сказать чтобы ту же, но использовать для этих целей можно (но это не этично, для подобных целей введены типа intptr_t/uintptr_t).
    DWORD_PTR как и ULONG_PTR, как уже заметили, полностью эквивалентны.