Цитируя http://msdn.microsoft.com/en-us/library/windows/desktop/aa384242%28v=vs.85%29.aspxРазъяснение: Портирование 32 до 64 бит
Использование UINT_PTR и INT_PTR в случае необходимости (и если вы не уверены требуются ли они, нет никакого вреда в использовании их только в случае). Не указывайте свои указатели на типы ULONG, LONG, INT, UINT, или DWORD.
Можно ли с уверенностью предположить, что преобразование всех ссылок DWORD в UNIT_PTR в существующую 32-разрядную Codeline безопасно без каких-либо побочных эффектов?
Есть ли другие рекомендуемые рекомендации по переносу 32-битного кода, который ссылается на DWORD через кодовую линию?
wait, no, вы неправильно поняли. НЕ СОДЕРЖАЙТЕ ВСЕ 'DWORD'' UINT_PTR'! –
@MooingDuck: И почему вы так думаете? Не могли бы вы объяснить? – Abhijit
(1) 'UINT_PTR' должен использоваться _if и только если вам нужно сохранить указатель в переменной целочисленного типа. В противном случае используйте целое число или указатель. (2) 'UINT_PTR' иногда будет 32-битным, иногда 64-битным, большую часть времени, вам просто не нужно. (3) Поскольку он нарушает совместимость и переносимость двоичных файлов, в зависимости от того, как вы сделали свой ввод-вывод, он может сделать ваши данные не переносимыми. –